mirror of
https://github.com/minetest/minetest.git
synced 2024-11-30 03:23:45 +01:00
Fix missing item images clipping in formspecs (#8652)
* Fix clipping of itemimage * Code style * More code styling
This commit is contained in:
parent
a8446d29e8
commit
c3daf2a8be
@ -649,10 +649,31 @@ void drawItemStack(video::IVideoDriver *driver,
|
|||||||
core::rect<s32> oldViewPort = driver->getViewPort();
|
core::rect<s32> oldViewPort = driver->getViewPort();
|
||||||
core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION);
|
core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION);
|
||||||
core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW);
|
core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW);
|
||||||
|
core::rect<s32> viewrect = rect;
|
||||||
|
if (clip)
|
||||||
|
viewrect.clipAgainst(*clip);
|
||||||
|
|
||||||
core::matrix4 ProjMatrix;
|
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_PROJECTION, ProjMatrix);
|
||||||
driver->setTransform(video::ETS_VIEW, ProjMatrix);
|
driver->setTransform(video::ETS_VIEW, ViewMatrix);
|
||||||
|
|
||||||
core::matrix4 matrix;
|
core::matrix4 matrix;
|
||||||
matrix.makeIdentity();
|
matrix.makeIdentity();
|
||||||
|
|
||||||
@ -662,7 +683,7 @@ void drawItemStack(video::IVideoDriver *driver,
|
|||||||
}
|
}
|
||||||
|
|
||||||
driver->setTransform(video::ETS_WORLD, matrix);
|
driver->setTransform(video::ETS_WORLD, matrix);
|
||||||
driver->setViewPort(rect);
|
driver->setViewPort(viewrect);
|
||||||
|
|
||||||
video::SColor basecolor =
|
video::SColor basecolor =
|
||||||
client->idef()->getItemstackColor(item, client);
|
client->idef()->getItemstackColor(item, client);
|
||||||
|
Loading…
Reference in New Issue
Block a user