Slate custom box

I want to make some trapezium-like shape for my widget and I really struggle to do so. Slate is not most easy to use UI framework and heavily relies on linear algebra, but that is ok, I figured out how to move, scale and rotate shapes. Now I want to position my top x point and my bottom x point differently. I couldn’t find any solution, all transformations really wants just x and y coordinate and scale.
My idea is to create a sort of a progress bar with a windscreen wiper-like movements. I tried to use a clipping zone as the original progress bar does, but with no luck.

You might try to look up OnPaint function which give you low access to how widget is drawn. If you think that SProcessBar does what you want, sid you consider looking how SProcessBar actully doing it?

https://github.com/EpicGames/UnrealEngine/blob/f509bb2d6c62806882d9a10476f3654cf1ee0634/Engine/Source/Runtime/Slate/Private/Widgets/Notifications/SProgressBar.cpp

Yes, I copied all stuff from SProgressBar and renamed it, and I change what’s in OnPaint function, the question, however, still remains. I’d like to change a box to be trapezium, but the MakeBox function only accepts FPaintGeometry as a geometry, and there is no way to do what I want with it.

In FPaintGeometry there 2 type of transformations layout and render, you quite limited on layout side but with render transform (FSlateRenderTransform) you can apply any FMatrix2x2 transformation which let you do trapezoid too. Google hoe to make trapezoid matrix