compositor: add weston_surface transformation doc

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
dev
Pekka Paalanen 13 years ago
parent 9f9aa1be50
commit 44ab69cfa3
  1. 25
      src/compositor.h

@ -208,6 +208,31 @@ enum weston_output_flags {
WL_OUTPUT_FLIPPED = 0x01 WL_OUTPUT_FLIPPED = 0x01
}; };
/* Using weston_surface transformations
*
* To add a transformation to a surface, create a struct weston_transform, and
* add it to the list surface->geometry.transformation_list. Whenever you
* change the list, anything under surface->geometry, or anything in the
* weston_transforms linked into the list, you must set
* surface->geometry.dirty = 1.
*
* The order in the list defines the order of transformations. Let the list
* contain the transformation matrices M1, ..., Mn as head to tail. The
* transformation is applied to surface-local coordinate vector p as
* P = Mn * ... * M2 * M1 * p
* to produce the global coordinate vector P. The total transform
* Mn * ... * M2 * M1
* is cached in surface->transform.matrix, and the inverse of it in
* surface->transform.inverse.
*
* The list always contains surface->transform.position transformation, which
* is the translation by surface->geometry.x and y.
*
* If you want to apply a transformation in local coordinates, add your
* weston_transform to the head of the list. If you want to apply a
* transformation in global coordinates, add it to the tail of the list.
*/
struct weston_surface { struct weston_surface {
struct wl_surface surface; struct wl_surface surface;
struct weston_compositor *compositor; struct weston_compositor *compositor;

Loading…
Cancel
Save