4 * An object oriented GL/GLES Abstraction/Utility Layer
6 * Copyright (C) 2010 Intel Corporation.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library. If not, see
20 * <http://www.gnu.org/licenses/>.
25 /* This can be included multiple times with different definitions for
26 * the COGL_WINSYS_FEATURE_* functions.
30 * COGL_WINSYS_FEATURE_BEGIN (name, namespaces, extension_names,
31 * implied_public_feature_flags,
32 * implied_private_feature_flags,
33 * implied_winsys_feature)
34 * COGL_WINSYS_FEATURE_FUNCTION (return_type, function_name,
37 * COGL_WINSYS_FEATURE_END ()
39 * Note: You can list multiple namespace and extension names if the
40 * corresponding _FEATURE_FUNCTIONS have the same semantics accross
41 * the different extension variants.
43 * XXX: NB: Don't add a trailing semicolon when using these macros
46 COGL_WINSYS_FEATURE_BEGIN (texture_from_pixmap,
48 "texture_from_pixmap\0",
51 COGL_WINSYS_FEATURE_TEXTURE_FROM_PIXMAP)
52 COGL_WINSYS_FEATURE_FUNCTION (void, glXBindTexImage,
57 COGL_WINSYS_FEATURE_FUNCTION (void, glXReleaseTexImage,
61 COGL_WINSYS_FEATURE_END ()
63 COGL_WINSYS_FEATURE_BEGIN (video_sync,
68 COGL_WINSYS_FEATURE_VBLANK_COUNTER)
69 COGL_WINSYS_FEATURE_FUNCTION (int, glXGetVideoSync,
70 (unsigned int *count))
71 COGL_WINSYS_FEATURE_FUNCTION (int, glXWaitVideoSync,
75 COGL_WINSYS_FEATURE_END ()
77 COGL_WINSYS_FEATURE_BEGIN (swap_control,
82 COGL_WINSYS_FEATURE_SWAP_THROTTLE)
83 COGL_WINSYS_FEATURE_FUNCTION (int, glXSwapInterval,
85 COGL_WINSYS_FEATURE_END ()
87 COGL_WINSYS_FEATURE_BEGIN (copy_sub_buffer,
92 /* We initially assumed that copy_sub_buffer is synchronized on
93 * which is only the case for a subset of GPUs for example it is not
94 * synchronized on INTEL gen6 and gen7, so we remove this assumption
98 COGL_WINSYS_FEATURE_SWAP_REGION_SYNCHRONIZED)
101 COGL_WINSYS_FEATURE_FUNCTION (void, glXCopySubBuffer,
103 GLXDrawable drawable,
104 int x, int y, int width, int height))
105 COGL_WINSYS_FEATURE_END ()
107 COGL_WINSYS_FEATURE_BEGIN (swap_event,
112 COGL_WINSYS_FEATURE_SWAP_BUFFERS_EVENT)
113 COGL_WINSYS_FEATURE_END ()