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 #include "GL/internal/mesa_interface.h" 41 42 struct dri2_screen { 43 struct glx_screen base; 44 45 __DRIscreen *driScreen; 46 __GLXDRIscreen vtable; 47 const __DRIdri2Extension *dri2; 48 const __DRIcoreExtension *core; 49 const __DRImesaCoreExtension *mesa; 50 51 const __DRI2flushExtension *f; 52 const __DRI2configQueryExtension *config; 53 const __DRItexBufferExtension *texBuffer; 54 const __DRI2throttleExtension *throttle; 55 const __DRI2rendererQueryExtension *rendererQuery; 56 const __DRI2interopExtension *interop; 57 const __DRIconfig **driver_configs; 58 59 void *driver; 60 char *driverName; 61 int fd; 62 63 int show_fps_interval; 64 }; 65 66 _X_HIDDEN int 67 dri2_query_renderer_integer(struct glx_screen *base, int attribute, 68 unsigned int *value); 69 70 _X_HIDDEN int 71 dri2_query_renderer_string(struct glx_screen *base, int attribute, 72 const char **value); 73 74 _X_HIDDEN int 75 dri2_interop_query_device_info(struct glx_context *ctx, 76 struct mesa_glinterop_device_info *out); 77 78 _X_HIDDEN int 79 dri2_interop_export_object(struct glx_context *ctx, 80 struct mesa_glinterop_export_in *in, 81 struct mesa_glinterop_export_out *out); 82 83 _X_HIDDEN int 84 dri2_interop_flush_objects(struct glx_context *ctx, 85 unsigned count, struct mesa_glinterop_export_in *objects, 86 struct mesa_glinterop_flush_out *out); 87 88 #ifdef __cplusplus 89 } 90 #endif 91 92 #endif 93