1 /* 2 * Copyright © 2008 Red Hat, Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Soft- 6 * ware"), to deal in the Software without restriction, including without 7 * limitation the rights to use, copy, modify, merge, publish, distribute, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, provided that the above copyright 10 * notice(s) and this permission notice appear in all copies of the Soft- 11 * ware and that both the above copyright notice(s) and this permission 12 * notice appear in supporting documentation. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- 16 * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY 17 * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN 18 * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE- 19 * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 20 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 21 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR- 22 * MANCE OF THIS SOFTWARE. 23 * 24 * Except as contained in this notice, the name of a copyright holder shall 25 * not be used in advertising or otherwise to promote the sale, use or 26 * other dealings in this Software without prior written authorization of 27 * the copyright holder. 28 * 29 * Authors: 30 * Kristian Høgsberg (krh@redhat.com) 31 */ 32 33 #ifndef DRI2_PRIV_H 34 #define DRI2_PRIV_H 35 36 #ifdef __cplusplus 37 extern "C" { 38 #endif 39 40 struct dri2_screen { 41 struct glx_screen base; 42 43 __DRIscreen *driScreen; 44 __GLXDRIscreen vtable; 45 const __DRIdri2Extension *dri2; 46 const __DRIcoreExtension *core; 47 48 const __DRI2flushExtension *f; 49 const __DRI2configQueryExtension *config; 50 const __DRItexBufferExtension *texBuffer; 51 const __DRI2throttleExtension *throttle; 52 const __DRI2rendererQueryExtension *rendererQuery; 53 const __DRI2interopExtension *interop; 54 const __DRIconfig **driver_configs; 55 56 void *driver; 57 int fd; 58 59 int show_fps_interval; 60 }; 61 62 struct dri2_context 63 { 64 struct glx_context base; 65 __DRIcontext *driContext; 66 }; 67 68 _X_HIDDEN int 69 dri2_query_renderer_integer(struct glx_screen *base, int attribute, 70 unsigned int *value); 71 72 _X_HIDDEN int 73 dri2_query_renderer_string(struct glx_screen *base, int attribute, 74 const char **value); 75 76 _X_HIDDEN int 77 dri2_interop_query_device_info(struct glx_context *ctx, 78 struct mesa_glinterop_device_info *out); 79 80 _X_HIDDEN int 81 dri2_interop_export_object(struct glx_context *ctx, 82 struct mesa_glinterop_export_in *in, 83 struct mesa_glinterop_export_out *out); 84 85 #ifdef __cplusplus 86 } 87 #endif 88 89 #endif 90