xserver

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

xf86fbman.h (6839B)


      1 
      2 /*
      3  * Copyright (c) 1998-2001 by The XFree86 Project, Inc.
      4  *
      5  * Permission is hereby granted, free of charge, to any person obtaining a
      6  * copy of this software and associated documentation files (the "Software"),
      7  * to deal in the Software without restriction, including without limitation
      8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      9  * and/or sell copies of the Software, and to permit persons to whom the
     10  * Software is furnished to do so, subject to the following conditions:
     11  *
     12  * The above copyright notice and this permission notice shall be included in
     13  * all copies or substantial portions of the Software.
     14  *
     15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     18  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
     19  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     20  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     21  * OTHER DEALINGS IN THE SOFTWARE.
     22  *
     23  * Except as contained in this notice, the name of the copyright holder(s)
     24  * and author(s) shall not be used in advertising or otherwise to promote
     25  * the sale, use or other dealings in this Software without prior written
     26  * authorization from the copyright holder(s) and author(s).
     27  */
     28 
     29 #ifndef _XF86FBMAN_H
     30 #define _XF86FBMAN_H
     31 
     32 #include "scrnintstr.h"
     33 #include "regionstr.h"
     34 
     35 #define FAVOR_AREA_THEN_WIDTH		0
     36 #define FAVOR_AREA_THEN_HEIGHT		1
     37 #define FAVOR_WIDTH_THEN_AREA		2
     38 #define FAVOR_HEIGHT_THEN_AREA		3
     39 
     40 #define PRIORITY_LOW			0
     41 #define PRIORITY_NORMAL			1
     42 #define PRIORITY_EXTREME		2
     43 
     44 typedef struct _FBArea {
     45     ScreenPtr pScreen;
     46     BoxRec box;
     47     int granularity;
     48     void (*MoveAreaCallback) (struct _FBArea *, struct _FBArea *);
     49     void (*RemoveAreaCallback) (struct _FBArea *);
     50     DevUnion devPrivate;
     51 } FBArea, *FBAreaPtr;
     52 
     53 typedef struct _FBLinear {
     54     ScreenPtr pScreen;
     55     int size;
     56     int offset;
     57     int granularity;
     58     void (*MoveLinearCallback) (struct _FBLinear *, struct _FBLinear *);
     59     void (*RemoveLinearCallback) (struct _FBLinear *);
     60     DevUnion devPrivate;
     61 } FBLinear, *FBLinearPtr;
     62 
     63 typedef void (*FreeBoxCallbackProcPtr) (ScreenPtr, RegionPtr, void *);
     64 typedef void (*MoveAreaCallbackProcPtr) (FBAreaPtr, FBAreaPtr);
     65 typedef void (*RemoveAreaCallbackProcPtr) (FBAreaPtr);
     66 
     67 typedef void (*MoveLinearCallbackProcPtr) (FBLinearPtr, FBLinearPtr);
     68 typedef void (*RemoveLinearCallbackProcPtr) (FBLinearPtr);
     69 
     70 typedef struct {
     71     FBAreaPtr(*AllocateOffscreenArea) (ScreenPtr pScreen,
     72                                        int w, int h,
     73                                        int granularity,
     74                                        MoveAreaCallbackProcPtr moveCB,
     75                                        RemoveAreaCallbackProcPtr removeCB,
     76                                        void *privData);
     77     void (*FreeOffscreenArea) (FBAreaPtr area);
     78     Bool (*ResizeOffscreenArea) (FBAreaPtr area, int w, int h);
     79     Bool (*QueryLargestOffscreenArea) (ScreenPtr pScreen,
     80                                        int *width, int *height,
     81                                        int granularity,
     82                                        int preferences, int priority);
     83     Bool (*RegisterFreeBoxCallback) (ScreenPtr pScreen,
     84                                      FreeBoxCallbackProcPtr FreeBoxCallback,
     85                                      void *devPriv);
     86 /* linear functions */
     87      FBLinearPtr(*AllocateOffscreenLinear) (ScreenPtr pScreen,
     88                                             int size,
     89                                             int granularity,
     90                                             MoveLinearCallbackProcPtr moveCB,
     91                                             RemoveLinearCallbackProcPtr
     92                                             removeCB, void *privData);
     93     void (*FreeOffscreenLinear) (FBLinearPtr area);
     94     Bool (*ResizeOffscreenLinear) (FBLinearPtr area, int size);
     95     Bool (*QueryLargestOffscreenLinear) (ScreenPtr pScreen,
     96                                          int *size,
     97                                          int granularity, int priority);
     98     Bool (*PurgeOffscreenAreas) (ScreenPtr);
     99 } FBManagerFuncs, *FBManagerFuncsPtr;
    100 
    101 extern _X_EXPORT Bool xf86RegisterOffscreenManager(ScreenPtr pScreen,
    102                                                    FBManagerFuncsPtr funcs);
    103 
    104 extern _X_EXPORT Bool
    105  xf86InitFBManagerRegion(ScreenPtr pScreen, RegionPtr ScreenRegion);
    106 
    107 extern _X_EXPORT Bool
    108  xf86InitFBManagerArea(ScreenPtr pScreen, int PixalArea, int Verbosity);
    109 
    110 extern _X_EXPORT Bool
    111  xf86InitFBManager(ScreenPtr pScreen, BoxPtr FullBox);
    112 
    113 extern _X_EXPORT Bool
    114  xf86InitFBManagerLinear(ScreenPtr pScreen, int offset, int size);
    115 
    116 extern _X_EXPORT Bool
    117  xf86FBManagerRunning(ScreenPtr pScreen);
    118 
    119 extern _X_EXPORT FBAreaPtr
    120 xf86AllocateOffscreenArea(ScreenPtr pScreen,
    121                           int w, int h,
    122                           int granularity,
    123                           MoveAreaCallbackProcPtr moveCB,
    124                           RemoveAreaCallbackProcPtr removeCB, void *privData);
    125 
    126 extern _X_EXPORT FBAreaPtr
    127 xf86AllocateLinearOffscreenArea(ScreenPtr pScreen,
    128                                 int length,
    129                                 int granularity,
    130                                 MoveAreaCallbackProcPtr moveCB,
    131                                 RemoveAreaCallbackProcPtr removeCB,
    132                                 void *privData);
    133 
    134 extern _X_EXPORT FBLinearPtr
    135 xf86AllocateOffscreenLinear(ScreenPtr pScreen,
    136                             int length,
    137                             int granularity,
    138                             MoveLinearCallbackProcPtr moveCB,
    139                             RemoveLinearCallbackProcPtr removeCB,
    140                             void *privData);
    141 
    142 extern _X_EXPORT void xf86FreeOffscreenArea(FBAreaPtr area);
    143 extern _X_EXPORT void xf86FreeOffscreenLinear(FBLinearPtr area);
    144 
    145 extern _X_EXPORT Bool
    146  xf86ResizeOffscreenArea(FBAreaPtr resize, int w, int h);
    147 
    148 extern _X_EXPORT Bool
    149  xf86ResizeOffscreenLinear(FBLinearPtr resize, int size);
    150 
    151 extern _X_EXPORT Bool
    152 
    153 xf86RegisterFreeBoxCallback(ScreenPtr pScreen,
    154                             FreeBoxCallbackProcPtr FreeBoxCallback,
    155                             void *devPriv);
    156 
    157 extern _X_EXPORT Bool
    158  xf86PurgeUnlockedOffscreenAreas(ScreenPtr pScreen);
    159 
    160 extern _X_EXPORT Bool
    161 
    162 xf86QueryLargestOffscreenArea(ScreenPtr pScreen,
    163                               int *width, int *height,
    164                               int granularity, int preferences, int priority);
    165 
    166 extern _X_EXPORT Bool
    167 
    168 xf86QueryLargestOffscreenLinear(ScreenPtr pScreen,
    169                                 int *size, int granularity, int priority);
    170 
    171 #endif                          /* _XF86FBMAN_H */