1/*
2 * Xephyr - A kdrive X server thats runs in a host X window.
3 *          Authored by Matthew Allum <mallum@openedhand.com>
4 *
5 * Copyright © 2007 OpenedHand Ltd
6 *
7 * Permission to use, copy, modify, distribute, and sell this software and its
8 * documentation for any purpose is hereby granted without fee, provided that
9 * the above copyright notice appear in all copies and that both that
10 * copyright notice and this permission notice appear in supporting
11 * documentation, and that the name of OpenedHand Ltd not be used in
12 * advertising or publicity pertaining to distribution of the software without
13 * specific, written prior permission. OpenedHand Ltd makes no
14 * representations about the suitability of this software for any purpose.  It
15 * is provided "as is" without express or implied warranty.
16 *
17 * OpenedHand Ltd DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
18 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
19 * EVENT SHALL OpenedHand Ltd BE LIABLE FOR ANY SPECIAL, INDIRECT OR
20 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
21 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
22 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
23 * PERFORMANCE OF THIS SOFTWARE.
24 *
25 * Authors:
26 *    Dodji Seketeli <dodji@openedhand.com>
27 */
28#ifndef __EPHYRHOSTGLX_H__
29#define __EPHYRHOSTGLX_H__
30
31enum EphyrHostGLXGetStringOps {
32    EPHYR_HOST_GLX_UNDEF,
33    EPHYR_HOST_GLX_QueryServerString,
34    EPHYR_HOST_GLX_GetString,
35};
36
37Bool ephyrHostGLXQueryVersion (int *a_maj, int *a_min) ;
38Bool ephyrHostGLXGetStringFromServer (int a_screen_number,
39                                      int a_string_name,
40                                      enum EphyrHostGLXGetStringOps a_op,
41                                      char **a_string) ;
42Bool ephyrHostGLXGetVisualConfigs (int a_screen,
43                                   int32_t *a_num_visuals,
44                                   int32_t *a_num_props,
45                                   int32_t *a_props_buf_size,
46                                   int32_t **a_props_buf) ;
47Bool
48ephyrHostGLXVendorPrivGetFBConfigsSGIX (int a_screen,
49                                        int32_t *a_num_visuals,
50                                        int32_t *a_num_props,
51                                        int32_t *a_props_buf_size,
52                                        int32_t **a_props_buf);
53Bool ephyrHostGLXGetMajorOpcode (int32_t *a_opcode) ;
54Bool ephyrHostGLXSendClientInfo (int32_t a_major, int32_t a_minor,
55                                 const char* a_extension_list) ;
56Bool ephyrHostGLXCreateContext (int a_screen,
57                                int a_visual_id,
58                                int a_context_id,
59                                int a_shared_list_ctx_id,
60                                Bool a_direct) ;
61
62Bool ephyrHostDestroyContext (int a_ctxt_id) ;
63
64Bool ephyrHostGLXMakeCurrent (int a_drawable, int a_glx_ctxt_id,
65                              int a_olg_ctxt_tag, int *a_ctxt_tag) ;
66
67Bool ephyrHostGetIntegerValue (int a_current_context_tag,
68                               int a_int,
69                               int *a_val) ;
70
71Bool ephyrHostIsContextDirect (int a_ctxt_id,
72                               int *a_is_direct) ;
73
74
75#endif /*__EPHYRHOSTGLX_H__*/
76
77