1 /* 2 * Cogl 3 * 4 * A Low Level GPU Graphics and Utilities API 5 * 6 * Copyright (C) 2012 Collabora Ltd. 7 * 8 * Permission is hereby granted, free of charge, to any person 9 * obtaining a copy of this software and associated documentation 10 * files (the "Software"), to deal in the Software without 11 * restriction, including without limitation the rights to use, copy, 12 * modify, merge, publish, distribute, sublicense, and/or sell copies 13 * of the Software, and to permit persons to whom the Software is 14 * furnished to do so, subject to the following conditions: 15 * 16 * The above copyright notice and this permission notice shall be 17 * included in all copies or substantial portions of the Software. 18 * 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 23 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 24 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 * SOFTWARE. 27 * 28 * 29 */ 30 31 #ifndef __COGL_FENCE_PRIVATE_H__ 32 #define __COGL_FENCE_PRIVATE_H__ 33 34 #include "cogl-fence.h" 35 #include "cogl-list.h" 36 #include "cogl-winsys-private.h" 37 38 typedef enum 39 { 40 FENCE_TYPE_PENDING, 41 #ifdef GL_ARB_sync 42 FENCE_TYPE_GL_ARB, 43 #endif 44 FENCE_TYPE_WINSYS, 45 FENCE_TYPE_ERROR 46 } CoglFenceType; 47 48 struct _CoglFenceClosure 49 { 50 CoglList link; 51 CoglFramebuffer *framebuffer; 52 53 CoglFenceType type; 54 void *fence_obj; 55 56 CoglFenceCallback callback; 57 void *user_data; 58 }; 59 60 void 61 _cogl_fence_submit (CoglFenceClosure *fence); 62 63 void 64 _cogl_fence_cancel_fences_for_framebuffer (CoglFramebuffer *framebuffer); 65 66 #endif /* __COGL_FENCE_PRIVATE_H__ */ 67