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 char *driverName; 58 int fd; 59 60 int show_fps_interval; 61 }; 62 63 struct dri2_context 64 { 65 struct glx_context base; 66 __DRIcontext *driContext; 67 }; 68 69 _X_HIDDEN int 70 dri2_query_renderer_integer(struct glx_screen *base, int attribute, 71 unsigned int *value); 72 73 _X_HIDDEN int 74 dri2_query_renderer_string(struct glx_screen *base, int attribute, 75 const char **value); 76 77 _X_HIDDEN int 78 dri2_interop_query_device_info(struct glx_context *ctx, 79 struct mesa_glinterop_device_info *out); 80 81 _X_HIDDEN int 82 dri2_interop_export_object(struct glx_context *ctx, 83 struct mesa_glinterop_export_in *in, 84 struct mesa_glinterop_export_out *out); 85 86 #ifdef __cplusplus 87 } 88 #endif 89 90 #endif 91