xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

matrix.c (2872B)


      1 /*
      2  * Copyright © 2007 Keith Packard
      3  *
      4  * Permission to use, copy, modify, distribute, and sell this software and its
      5  * documentation for any purpose is hereby granted without fee, provided that
      6  * the above copyright notice appear in all copies and that both that copyright
      7  * notice and this permission notice appear in supporting documentation, and
      8  * that the name of the copyright holders not be used in advertising or
      9  * publicity pertaining to distribution of the software without specific,
     10  * written prior permission.  The copyright holders make no representations
     11  * about the suitability of this software for any purpose.  It is provided "as
     12  * is" without express or implied warranty.
     13  *
     14  * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
     15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
     16  * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
     17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
     18  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
     19  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
     20  * OF THIS SOFTWARE.
     21  */
     22 
     23 #ifdef HAVE_DIX_CONFIG_H
     24 #include <dix-config.h>
     25 #endif
     26 
     27 #include "misc.h"
     28 #include "scrnintstr.h"
     29 #include "os.h"
     30 #include "regionstr.h"
     31 #include "validate.h"
     32 #include "windowstr.h"
     33 #include "input.h"
     34 #include "resource.h"
     35 #include "colormapst.h"
     36 #include "cursorstr.h"
     37 #include "dixstruct.h"
     38 #include "gcstruct.h"
     39 #include "servermd.h"
     40 #include "picturestr.h"
     41 
     42 void
     43 PictTransform_from_xRenderTransform(PictTransformPtr pict,
     44                                     xRenderTransform * render)
     45 {
     46     pict->matrix[0][0] = render->matrix11;
     47     pict->matrix[0][1] = render->matrix12;
     48     pict->matrix[0][2] = render->matrix13;
     49 
     50     pict->matrix[1][0] = render->matrix21;
     51     pict->matrix[1][1] = render->matrix22;
     52     pict->matrix[1][2] = render->matrix23;
     53 
     54     pict->matrix[2][0] = render->matrix31;
     55     pict->matrix[2][1] = render->matrix32;
     56     pict->matrix[2][2] = render->matrix33;
     57 }
     58 
     59 void
     60 xRenderTransform_from_PictTransform(xRenderTransform * render,
     61                                     PictTransformPtr pict)
     62 {
     63     render->matrix11 = pict->matrix[0][0];
     64     render->matrix12 = pict->matrix[0][1];
     65     render->matrix13 = pict->matrix[0][2];
     66 
     67     render->matrix21 = pict->matrix[1][0];
     68     render->matrix22 = pict->matrix[1][1];
     69     render->matrix23 = pict->matrix[1][2];
     70 
     71     render->matrix31 = pict->matrix[2][0];
     72     render->matrix32 = pict->matrix[2][1];
     73     render->matrix33 = pict->matrix[2][2];
     74 }
     75 
     76 Bool
     77 PictureTransformPoint(PictTransformPtr transform, PictVectorPtr vector)
     78 {
     79     return pixman_transform_point(transform, vector);
     80 }
     81 
     82 Bool
     83 PictureTransformPoint3d(PictTransformPtr transform, PictVectorPtr vector)
     84 {
     85     return pixman_transform_point_3d(transform, vector);
     86 }