Apply a perspective transform to the map

This applies a given perspective (3D) to the map coordinates. X, Y and Z values are used. The px and py points specify the "infinite distance" point in the 3D conversion (where all lines converge to like when artists draw 3D by hand). The z0 value specifies the z value at which there is a 1:1 mapping between spatial coordinates and screen coordinates. Any points on this z value will not have their X and Y values modified in the transform. Those further away (Z value higher) will shrink into the distance, and those less than this value will expand and become bigger. The foc value determines the "focal length" of the camera. This is in reality the distance between the camera lens plane itself (at or closer than this rendering results are undefined) and the "z0" z value. This allows for some "depth" control and foc must be greater than 0.

The coordinates of the center point are given in absolute canvas coordinates. See also Efl.Gfx.Mapping.perspective_3d for a pivot-based perspective effect.

Since 1.22


perspective_3d_absolute {
    params {
        @in px: double;
        @in py: double;
        @in z0: double;
        @in foc: double;

C signature

void efl_gfx_mapping_perspective_3d_absolute(Eo *obj, double px, double py, double z0, double foc);


  • px (in) - The perspective distance X relative coordinate.
  • py (in) - The perspective distance Y relative coordinate.
  • z0 (in) - The "0" Z plane value.
  • foc (in) - The focal distance, must be greater than 0.

Implemented by