⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dri_interface.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
📖 第 1 页 / 共 2 页
字号:
#define __DRI_DAMAGE_VERSION 1struct __DRIdamageExtensionRec {    __DRIextension base;    /**     * Reports areas of the given drawable which have been modified by the     * driver.     *     * \param drawable which the drawing was done to.     * \param rects rectangles affected, with the drawable origin as the     *	      origin.     * \param x X offset of the drawable within the screen (used in the     *	      front_buffer case)     * \param y Y offset of the drawable within the screen.     * \param front_buffer boolean flag for whether the drawing to the     * 	      drawable was actually done directly to the front buffer (instead     *	      of backing storage, for example)     * \param loaderPrivate the data passed in at createNewDrawable time     */    void (*reportDamage)(__DRIdrawable *draw,			 int x, int y,			 drm_clip_rect_t *rects, int num_rects,			 GLboolean front_buffer,			 void *loaderPrivate);};/** * DRI2 Loader extension.  This extension describes the basic * functionality the loader needs to provide for the DRI driver. */#define __DRI_LOADER "DRI_Loader"#define __DRI_LOADER_VERSION 1struct __DRIloaderExtensionRec {    __DRIextension base;    /**     * Ping the windowing system to get it to reemit info for the     * specified drawable in the DRI2 event buffer.     *     * \param draw the drawable for which to request info     * \param tail the new event buffer tail pointer     */    void (*reemitDrawableInfo)(__DRIdrawable *draw, unsigned int *tail,			       void *loaderPrivate);    void (*postDamage)(__DRIdrawable *draw, struct drm_clip_rect *rects,		       int num_rects, void *loaderPrivate);};#define __DRI_SWRAST_IMAGE_OP_DRAW	1#define __DRI_SWRAST_IMAGE_OP_CLEAR	2#define __DRI_SWRAST_IMAGE_OP_SWAP	3/** * SWRast Loader extension. */#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"#define __DRI_SWRAST_LOADER_VERSION 1struct __DRIswrastLoaderExtensionRec {    __DRIextension base;    /*     * Drawable position and size     */    void (*getDrawableInfo)(__DRIdrawable *drawable,			    int *x, int *y, int *width, int *height,			    void *loaderPrivate);    /**     * Put image to drawable     */    void (*putImage)(__DRIdrawable *drawable, int op,		     int x, int y, int width, int height, char *data,		     void *loaderPrivate);    /**     * Get image from drawable     */    void (*getImage)(__DRIdrawable *drawable,		     int x, int y, int width, int height, char *data,		     void *loaderPrivate);};/** * The remaining extensions describe driver extensions, immediately * available interfaces provided by the driver.  To start using the * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for * the extension you need in the array. */#define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions"/** * Tokens for __DRIconfig attribs.  A number of attributes defined by * GLX or EGL standards are not in the table, as they must be provided * by the loader.  For example, FBConfig ID or visual ID, drawable type. */#define __DRI_ATTRIB_BUFFER_SIZE		 1#define __DRI_ATTRIB_LEVEL			 2#define __DRI_ATTRIB_RED_SIZE			 3#define __DRI_ATTRIB_GREEN_SIZE			 4#define __DRI_ATTRIB_BLUE_SIZE			 5#define __DRI_ATTRIB_LUMINANCE_SIZE		 6#define __DRI_ATTRIB_ALPHA_SIZE			 7#define __DRI_ATTRIB_ALPHA_MASK_SIZE		 8#define __DRI_ATTRIB_DEPTH_SIZE			 9#define __DRI_ATTRIB_STENCIL_SIZE		10#define __DRI_ATTRIB_ACCUM_RED_SIZE		11#define __DRI_ATTRIB_ACCUM_GREEN_SIZE		12#define __DRI_ATTRIB_ACCUM_BLUE_SIZE		13#define __DRI_ATTRIB_ACCUM_ALPHA_SIZE		14#define __DRI_ATTRIB_SAMPLE_BUFFERS		15#define __DRI_ATTRIB_SAMPLES			16#define __DRI_ATTRIB_RENDER_TYPE		17#define __DRI_ATTRIB_CONFIG_CAVEAT		18#define __DRI_ATTRIB_CONFORMANT			19#define __DRI_ATTRIB_DOUBLE_BUFFER		20#define __DRI_ATTRIB_STEREO			21#define __DRI_ATTRIB_AUX_BUFFERS		22#define __DRI_ATTRIB_TRANSPARENT_TYPE		23#define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE	24#define __DRI_ATTRIB_TRANSPARENT_RED_VALUE	25#define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE	26#define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE	27#define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE	28#define __DRI_ATTRIB_FLOAT_MODE			29#define __DRI_ATTRIB_RED_MASK			30#define __DRI_ATTRIB_GREEN_MASK			31#define __DRI_ATTRIB_BLUE_MASK			32#define __DRI_ATTRIB_ALPHA_MASK			33#define __DRI_ATTRIB_MAX_PBUFFER_WIDTH		34#define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT		35#define __DRI_ATTRIB_MAX_PBUFFER_PIXELS		36#define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH	37#define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT	38#define __DRI_ATTRIB_VISUAL_SELECT_GROUP	39#define __DRI_ATTRIB_SWAP_METHOD		40#define __DRI_ATTRIB_MAX_SWAP_INTERVAL		41#define __DRI_ATTRIB_MIN_SWAP_INTERVAL		42#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB	43#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA	44#define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE	45#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS	46#define __DRI_ATTRIB_YINVERTED			47/* __DRI_ATTRIB_RENDER_TYPE */#define __DRI_ATTRIB_RGBA_BIT			0x01	#define __DRI_ATTRIB_COLOR_INDEX_BIT		0x02#define __DRI_ATTRIB_LUMINANCE_BIT		0x04/* __DRI_ATTRIB_CONFIG_CAVEAT */#define __DRI_ATTRIB_SLOW_BIT			0x01#define __DRI_ATTRIB_NON_CONFORMANT_CONFIG	0x02/* __DRI_ATTRIB_TRANSPARENT_TYPE */#define __DRI_ATTRIB_TRANSPARENT_RGB		0x00#define __DRI_ATTRIB_TRANSPARENT_INDEX		0x01/* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS	 */#define __DRI_ATTRIB_TEXTURE_1D_BIT		0x01#define __DRI_ATTRIB_TEXTURE_2D_BIT		0x02#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT	0x04/** * This extension defines the core DRI functionality. */#define __DRI_CORE "DRI_Core"#define __DRI_CORE_VERSION 1struct __DRIcoreExtensionRec {    __DRIextension base;    __DRIscreen *(*createNewScreen)(int screen, int fd,				    unsigned int sarea_handle,				    const __DRIextension **extensions,				    const __DRIconfig ***driverConfigs,				    void *loaderPrivate);    void (*destroyScreen)(__DRIscreen *screen);    const __DRIextension **(*getExtensions)(__DRIscreen *screen);    int (*getConfigAttrib)(const __DRIconfig *config,			   unsigned int attrib,			   unsigned int *value);    int (*indexConfigAttrib)(const __DRIconfig *config, int index,			     unsigned int *attrib, unsigned int *value);    __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,					const __DRIconfig *config,					unsigned int drawable_id,					unsigned int head,					void *loaderPrivate);    void (*destroyDrawable)(__DRIdrawable *drawable);    void (*swapBuffers)(__DRIdrawable *drawable);    __DRIcontext *(*createNewContext)(__DRIscreen *screen,				      const __DRIconfig *config,				      __DRIcontext *shared,				      void *loaderPrivate);    int (*copyContext)(__DRIcontext *dest,		       __DRIcontext *src,		       unsigned long mask);    void (*destroyContext)(__DRIcontext *context);    int (*bindContext)(__DRIcontext *ctx,		       __DRIdrawable *pdraw,		       __DRIdrawable *pread);    int (*unbindContext)(__DRIcontext *ctx);};/** * Stored version of some component (i.e., server-side DRI module, kernel-side * DRM, etc.). *  * \todo * There are several data structures that explicitly store a major version, * minor version, and patch level.  These structures should be modified to * have a \c __DRIversionRec instead. */struct __DRIversionRec {    int    major;        /**< Major version number. */    int    minor;        /**< Minor version number. */    int    patch;        /**< Patch-level. */};/** * Framebuffer information record.  Used by libGL to communicate information * about the framebuffer to the driver's \c __driCreateNewScreen function. *  * In XFree86, most of this information is derrived from data returned by * calling \c XF86DRIGetDeviceInfo. * * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen *     __driUtilCreateNewScreen CallCreateNewScreen * * \bug This structure could be better named. */struct __DRIframebufferRec {    unsigned char *base;    /**< Framebuffer base address in the CPU's			     * address space.  This value is calculated by			     * calling \c drmMap on the framebuffer handle			     * returned by \c XF86DRIGetDeviceInfo (or a			     * similar function).			     */    int size;               /**< Framebuffer size, in bytes. */    int stride;             /**< Number of bytes from one line to the next. */    int width;              /**< Pixel width of the framebuffer. */    int height;             /**< Pixel height of the framebuffer. */    int dev_priv_size;      /**< Size of the driver's dev-priv structure. */    void *dev_priv;         /**< Pointer to the driver's dev-priv structure. */};/** * This extension provides alternative screen, drawable and context * constructors for legacy DRI functionality.  This is used in * conjunction with the core extension. */#define __DRI_LEGACY "DRI_Legacy"#define __DRI_LEGACY_VERSION 1struct __DRIlegacyExtensionRec {    __DRIextension base;    __DRIscreen *(*createNewScreen)(int screen,				    const __DRIversion *ddx_version,				    const __DRIversion *dri_version,				    const __DRIversion *drm_version,				    const __DRIframebuffer *frame_buffer,				    void *pSAREA, int fd, 				    const __DRIextension **extensions,				    const __DRIconfig ***driver_configs,				    void *loaderPrivate);    __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,					const __DRIconfig *config,					drm_drawable_t hwDrawable,					int renderType, const int *attrs,					void *loaderPrivate);    __DRIcontext *(*createNewContext)(__DRIscreen *screen,				      const __DRIconfig *config,				      int render_type,				      __DRIcontext *shared,				      drm_context_t hwContext,				      void *loaderPrivate);};/** * This extension provides alternative screen, drawable and context * constructors for swrast DRI functionality.  This is used in * conjunction with the core extension. */#define __DRI_SWRAST "DRI_SWRast"#define __DRI_SWRAST_VERSION 1struct __DRIswrastExtensionRec {    __DRIextension base;    __DRIscreen *(*createNewScreen)(int screen,				    const __DRIextension **extensions,				    const __DRIconfig ***driver_configs,				    void *loaderPrivate);    __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,					const __DRIconfig *config,					void *loaderPrivate);};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -