Home | History | Annotate | Download | only in extensions
      1 /* $XFree86: xc/include/extensions/xf86vmode.h,v 3.30 2001/05/07 20:09:50 mvojkovi Exp $ */
      2 /*
      3 
      4 Copyright 1995  Kaleb S. KEITHLEY
      5 
      6 Permission is hereby granted, free of charge, to any person obtaining
      7 a copy of this software and associated documentation files (the
      8 "Software"), to deal in the Software without restriction, including
      9 without limitation the rights to use, copy, modify, merge, publish,
     10 distribute, sublicense, and/or sell copies of the Software, and to
     11 permit persons to whom the Software is furnished to do so, subject to
     12 the following conditions:
     13 
     14 The above copyright notice and this permission notice shall be
     15 included in all copies or substantial portions of the Software.
     16 
     17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     18 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     19 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     20 IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES
     21 OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     22 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     23 OTHER DEALINGS IN THE SOFTWARE.
     24 
     25 Except as contained in this notice, the name of Kaleb S. KEITHLEY
     26 shall not be used in advertising or otherwise to promote the sale, use
     27 or other dealings in this Software without prior written authorization
     28 from Kaleb S. KEITHLEY
     29 
     30 */
     31 /* $Xorg: xf86vmode.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $ */
     32 
     33 /* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
     34 
     35 #ifndef _XF86VIDMODE_H_
     36 #define _XF86VIDMODE_H_
     37 
     38 #include <X11/Xfuncproto.h>
     39 #include <X11/Xmd.h>
     40 #include "SDL_name.h"
     41 
     42 #define X_XF86VidModeQueryVersion	0
     43 #define X_XF86VidModeGetModeLine	1
     44 #define X_XF86VidModeModModeLine	2
     45 #define X_XF86VidModeSwitchMode		3
     46 #define X_XF86VidModeGetMonitor		4
     47 #define X_XF86VidModeLockModeSwitch	5
     48 #define X_XF86VidModeGetAllModeLines	6
     49 #define X_XF86VidModeAddModeLine	7
     50 #define X_XF86VidModeDeleteModeLine	8
     51 #define X_XF86VidModeValidateModeLine	9
     52 #define X_XF86VidModeSwitchToMode	10
     53 #define X_XF86VidModeGetViewPort	11
     54 #define X_XF86VidModeSetViewPort	12
     55 /* new for version 2.x of this extension */
     56 #define X_XF86VidModeGetDotClocks	13
     57 #define X_XF86VidModeSetClientVersion	14
     58 #define X_XF86VidModeSetGamma		15
     59 #define X_XF86VidModeGetGamma		16
     60 #define X_XF86VidModeGetGammaRamp	17
     61 #define X_XF86VidModeSetGammaRamp	18
     62 #define X_XF86VidModeGetGammaRampSize	19
     63 
     64 #define CLKFLAG_PROGRAMABLE		1
     65 
     66 #ifdef XF86VIDMODE_EVENTS
     67 #define XF86VidModeNotify		0
     68 #define XF86VidModeNumberEvents		(XF86VidModeNotify + 1)
     69 
     70 #define XF86VidModeNotifyMask		0x00000001
     71 
     72 #define XF86VidModeNonEvent		0
     73 #define XF86VidModeModeChange		1
     74 #else
     75 #define XF86VidModeNumberEvents		0
     76 #endif
     77 
     78 #define XF86VidModeBadClock		0
     79 #define XF86VidModeBadHTimings		1
     80 #define XF86VidModeBadVTimings		2
     81 #define XF86VidModeModeUnsuitable	3
     82 #define XF86VidModeExtensionDisabled	4
     83 #define XF86VidModeClientNotLocal	5
     84 #define XF86VidModeZoomLocked		6
     85 #define XF86VidModeNumberErrors		(XF86VidModeZoomLocked + 1)
     86 
     87 #ifndef _XF86VIDMODE_SERVER_
     88 
     89 typedef struct {
     90     unsigned short	hdisplay;
     91     unsigned short	hsyncstart;
     92     unsigned short	hsyncend;
     93     unsigned short	htotal;
     94     unsigned short	hskew;
     95     unsigned short	vdisplay;
     96     unsigned short	vsyncstart;
     97     unsigned short	vsyncend;
     98     unsigned short	vtotal;
     99     unsigned int	flags;
    100     int			privsize;
    101 #if defined(__cplusplus) || defined(c_plusplus)
    102     /* private is a C++ reserved word */
    103     INT32		*c_private;
    104 #else
    105     INT32		*private;
    106 #endif
    107 } SDL_NAME(XF86VidModeModeLine);
    108 
    109 typedef struct {
    110     unsigned int	dotclock;
    111     unsigned short	hdisplay;
    112     unsigned short	hsyncstart;
    113     unsigned short	hsyncend;
    114     unsigned short	htotal;
    115     unsigned short	hskew;
    116     unsigned short	vdisplay;
    117     unsigned short	vsyncstart;
    118     unsigned short	vsyncend;
    119     unsigned short	vtotal;
    120     unsigned int	flags;
    121     int			privsize;
    122 #if defined(__cplusplus) || defined(c_plusplus)
    123     /* private is a C++ reserved word */
    124     INT32		*c_private;
    125 #else
    126     INT32		*private;
    127 #endif
    128 } SDL_NAME(XF86VidModeModeInfo);
    129 
    130 typedef struct {
    131     float		hi;
    132     float		lo;
    133 } SDL_NAME(XF86VidModeSyncRange);
    134 
    135 typedef struct {
    136     char*			vendor;
    137     char*			model;
    138     float			EMPTY;
    139     unsigned char		nhsync;
    140     SDL_NAME(XF86VidModeSyncRange)*	hsync;
    141     unsigned char		nvsync;
    142     SDL_NAME(XF86VidModeSyncRange)*	vsync;
    143 } SDL_NAME(XF86VidModeMonitor);
    144 
    145 typedef struct {
    146     int type;			/* of event */
    147     unsigned long serial;	/* # of last request processed by server */
    148     Bool send_event;		/* true if this came from a SendEvent req */
    149     Display *display;		/* Display the event was read from */
    150     Window root;		/* root window of event screen */
    151     int state;			/* What happened */
    152     int kind;			/* What happened */
    153     Bool forced;		/* extents of new region */
    154     Time time;			/* event timestamp */
    155 } SDL_NAME(XF86VidModeNotifyEvent);
    156 
    157 typedef struct {
    158     float red;			/* Red Gamma value */
    159     float green;		/* Green Gamma value */
    160     float blue;			/* Blue Gamma value */
    161 } SDL_NAME(XF86VidModeGamma);
    162 
    163 
    164 #define SDL_XF86VidModeSelectNextMode(disp, scr) \
    165 	SDL_NAME(XF86VidModeSwitchMode)(disp, scr, 1)
    166 #define SDL_XF86VidModeSelectPrevMode(disp, scr) \
    167 	SDL_NAME(XF86VidModeSwitchMode)(disp, scr, -1)
    168 
    169 _XFUNCPROTOBEGIN
    170 
    171 Bool SDL_NAME(XF86VidModeQueryVersion)(
    172     Display*		/* dpy */,
    173     int*		/* majorVersion */,
    174     int*		/* minorVersion */
    175 );
    176 
    177 Bool SDL_NAME(XF86VidModeQueryExtension)(
    178     Display*		/* dpy */,
    179     int*		/* event_base */,
    180     int*		/* error_base */
    181 );
    182 
    183 Bool SDL_NAME(XF86VidModeSetClientVersion)(
    184     Display*		/* dpy */
    185 );
    186 
    187 Bool SDL_NAME(XF86VidModeGetModeLine)(
    188     Display*			/* dpy */,
    189     int				/* screen */,
    190     int*			/* dotclock */,
    191     SDL_NAME(XF86VidModeModeLine)*	/* modeline */
    192 );
    193 
    194 Bool SDL_NAME(XF86VidModeGetAllModeLines)(
    195     Display*			/* dpy */,
    196     int				/* screen */,
    197     int*			/* modecount */,
    198     SDL_NAME(XF86VidModeModeInfo)***	/* modelinesPtr */
    199 );
    200 
    201 Bool SDL_NAME(XF86VidModeAddModeLine)(
    202     Display*			/* dpy */,
    203     int				/* screen */,
    204     SDL_NAME(XF86VidModeModeInfo)*	/* new modeline */,
    205     SDL_NAME(XF86VidModeModeInfo)*	/* after modeline */
    206 );
    207 
    208 Bool SDL_NAME(XF86VidModeDeleteModeLine)(
    209     Display*			/* dpy */,
    210     int				/* screen */,
    211     SDL_NAME(XF86VidModeModeInfo)*	/* modeline */
    212 );
    213 
    214 Bool SDL_NAME(XF86VidModeModModeLine)(
    215     Display*			/* dpy */,
    216     int				/* screen */,
    217     SDL_NAME(XF86VidModeModeLine)*	/* modeline */
    218 );
    219 
    220 Status SDL_NAME(XF86VidModeValidateModeLine)(
    221     Display*			/* dpy */,
    222     int				/* screen */,
    223     SDL_NAME(XF86VidModeModeInfo)*	/* modeline */
    224 );
    225 
    226 Bool SDL_NAME(XF86VidModeSwitchMode)(
    227     Display*		/* dpy */,
    228     int			/* screen */,
    229     int			/* zoom */
    230 );
    231 
    232 Bool SDL_NAME(XF86VidModeSwitchToMode)(
    233     Display*			/* dpy */,
    234     int				/* screen */,
    235     SDL_NAME(XF86VidModeModeInfo)*	/* modeline */
    236 );
    237 
    238 Bool SDL_NAME(XF86VidModeLockModeSwitch)(
    239     Display*		/* dpy */,
    240     int			/* screen */,
    241     int			/* lock */
    242 );
    243 
    244 Bool SDL_NAME(XF86VidModeGetMonitor)(
    245     Display*		/* dpy */,
    246     int			/* screen */,
    247     SDL_NAME(XF86VidModeMonitor)*	/* monitor */
    248 );
    249 
    250 Bool SDL_NAME(XF86VidModeGetViewPort)(
    251     Display*		/* dpy */,
    252     int			/* screen */,
    253     int*		/* x return */,
    254     int*		/* y return */
    255 );
    256 
    257 Bool SDL_NAME(XF86VidModeSetViewPort)(
    258     Display*		/* dpy */,
    259     int			/* screen */,
    260     int			/* x */,
    261     int			/* y */
    262 );
    263 
    264 Bool SDL_NAME(XF86VidModeGetDotClocks)(
    265     Display*		/* dpy */,
    266     int			/* screen */,
    267     int*		/* flags return */,
    268     int*		/* number of clocks return */,
    269     int*		/* max dot clock return */,
    270     int**		/* clocks return */
    271 );
    272 
    273 Bool SDL_NAME(XF86VidModeGetGamma)(
    274     Display*			/* dpy */,
    275     int				/* screen */,
    276     SDL_NAME(XF86VidModeGamma)*		/* Gamma */
    277 );
    278 
    279 Bool SDL_NAME(XF86VidModeSetGamma)(
    280     Display*			/* dpy */,
    281     int				/* screen */,
    282     SDL_NAME(XF86VidModeGamma)*		/* Gamma */
    283 );
    284 
    285 Bool SDL_NAME(XF86VidModeSetGammaRamp)(
    286     Display*                    /* dpy */,
    287     int                         /* screen */,
    288     int				/* size */,
    289     unsigned short*             /* red array */,
    290     unsigned short*             /* green array */,
    291     unsigned short*             /* blue array */
    292 );
    293 
    294 Bool SDL_NAME(XF86VidModeGetGammaRamp)(
    295     Display*                    /* dpy */,
    296     int                         /* screen */,
    297     int                         /* size */,
    298     unsigned short*             /* red array */,
    299     unsigned short*             /* green array */,
    300     unsigned short*             /* blue array */
    301 );
    302 
    303 Bool SDL_NAME(XF86VidModeGetGammaRampSize)(
    304     Display*                    /* dpy */,
    305     int                         /* screen */,
    306     int*                        /* size */
    307 );
    308 
    309 
    310 _XFUNCPROTOEND
    311 
    312 #endif
    313 
    314 #endif
    315