mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-29 21:46:40 +00:00
Fix trapezoid and triangle rendering to windows
For fbAdd{Traps,Triangles}() and fbRasterizeTrapezoid() this is just a
matter of adding the image offsets to the trap offsets.
For fbShapes, the story is more complicated:
The recently added pixman API did not allow offsetting
trapezoids. Instead, it would use x_dst and y_dst in such a way that
the effect was to only offset the source image.
In pixman 0.21.8, this API has changed such that all the traps are
conceptually rendered to an infinitely big image, and the source and
destination coordinates are then aligned with (0, 0) of that
image. This means offsetting dst_x and dst_y will now offset the
entire drawing, which is similar to how other composite functions
work.
This patch then changes fbComposite{Triangles,Traps} such that the
source image is aligned with the shapes, and the destination
coordinates offset according to drawable->{x, y}.
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Soren Sandmann <ssp@redhat.com>
This commit is contained in:
parent
1b96a99d8e
commit
c6cb70be1e
2 changed files with 28 additions and 30 deletions
|
|
@ -797,7 +797,7 @@ LIBPCIACCESS="pciaccess >= 0.8.0"
|
|||
LIBUDEV="libudev >= 143"
|
||||
LIBSELINUX="libselinux >= 2.0.86"
|
||||
LIBDBUS="dbus-1 >= 1.0"
|
||||
LIBPIXMAN="pixman-1 >= 0.21.6"
|
||||
LIBPIXMAN="pixman-1 >= 0.21.8"
|
||||
|
||||
dnl Pixman is always required, but we separate it out so we can link
|
||||
dnl specific modules against it
|
||||
|
|
|
|||
Loading…
Reference in a new issue