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

📄 dri_interface.h

📁 mesa-6.5-minigui源码
💻 H
📖 第 1 页 / 共 2 页
字号:
 * 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. */};/** * Screen dependent methods.  This structure is initialized during the * \c __DRIdisplayRec::createScreen call. */struct __DRIscreenRec {    /**     * Method to destroy the private DRI screen data.     */    void (*destroyScreen)(__DRInativeDisplay *dpy, int scrn, void *screenPrivate);    /**     * Method to create the private DRI drawable data and initialize the     * drawable dependent methods.     */    void *(*createNewDrawable)(__DRInativeDisplay *dpy, const __GLcontextModes *modes,			       __DRIid draw, __DRIdrawable *pdraw,			       int renderType, const int *attrs);    /**     * Method to return a pointer to the DRI drawable data.     */    __DRIdrawable *(*getDrawable)(__DRInativeDisplay *dpy, __DRIid draw,				  void *drawablePrivate);    /**     * Opaque pointer to private per screen direct rendering data.  \c NULL     * if direct rendering is not supported on this screen.  Never     * dereferenced in libGL.     */    void *private;    /**     * Get the number of vertical refreshes since some point in time before     * this function was first called (i.e., system start up).     *      * \since Internal API version 20030317.     */    int (*getMSC)( void *screenPrivate, int64_t *msc );    /**     * Opaque pointer that points back to the containing      * \c __GLXscreenConfigs.  This data structure is shared with DRI drivers     * but \c __GLXscreenConfigs is not. However, they are needed by some GLX     * functions called by DRI drivers.     *     * \since Internal API version 20030813.     */    void *screenConfigs;    /**     * Functions associated with MESA_allocate_memory.     *     * \since Internal API version 20030815.     */    /*@{*/    void *(*allocateMemory)(__DRInativeDisplay *dpy, int scrn, GLsizei size,			    GLfloat readfreq, GLfloat writefreq,			    GLfloat priority);       void (*freeMemory)(__DRInativeDisplay *dpy, int scrn, GLvoid *pointer);       GLuint (*memoryOffset)(__DRInativeDisplay *dpy, int scrn, const GLvoid *pointer);    /*@}*/    /**     * Method to create the private DRI context data and initialize the     * context dependent methods.     *     * \since Internal API version 20031201.     */    void * (*createNewContext)(__DRInativeDisplay *dpy, const __GLcontextModes *modes,			       int render_type,			       void *sharedPrivate, __DRIcontext *pctx);};/** * Context dependent methods.  This structure is initialized during the * \c __DRIscreenRec::createContext call. */struct __DRIcontextRec {    /**     * Method to destroy the private DRI context data.     */    void (*destroyContext)(__DRInativeDisplay *dpy, int scrn, void *contextPrivate);    /**     * Opaque pointer to private per context direct rendering data.     * \c NULL if direct rendering is not supported on the display or     * screen used to create this context.  Never dereferenced in libGL.     */    void *private;    /**     * Pointer to the mode used to create this context.     *     * \since Internal API version 20040317.     */    const __GLcontextModes * mode;    /**     * Method to bind a DRI drawable to a DRI graphics context.     *     * \since Internal API version 20050727.     */    GLboolean (*bindContext)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,			 __DRIid read, __DRIcontext *ctx);    /**     * Method to unbind a DRI drawable from a DRI graphics context.     *     * \since Internal API version 20050727.     */    GLboolean (*unbindContext)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,			   __DRIid read, __DRIcontext *ctx);};/** * Drawable dependent methods.  This structure is initialized during the * \c __DRIscreenRec::createDrawable call.  \c createDrawable is not called * by libGL at this time.  It's currently used via the dri_util.c utility code * instead. */struct __DRIdrawableRec {    /**     * Method to destroy the private DRI drawable data.     */    void (*destroyDrawable)(__DRInativeDisplay *dpy, void *drawablePrivate);    /**     * Method to swap the front and back buffers.     */    void (*swapBuffers)(__DRInativeDisplay *dpy, void *drawablePrivate);    /**     * Opaque pointer to private per drawable direct rendering data.     * \c NULL if direct rendering is not supported on the display or     * screen used to create this drawable.  Never dereferenced in libGL.     */    void *private;    /**     * Get the number of completed swap buffers for this drawable.     *     * \since Internal API version 20030317.     */    int (*getSBC)(__DRInativeDisplay *dpy, void *drawablePrivate, int64_t *sbc );    /**     * Wait for the SBC to be greater than or equal target_sbc.     *     * \since Internal API version 20030317.     */    int (*waitForSBC)( __DRInativeDisplay * dpy, void *drawablePriv,		       int64_t target_sbc,		       int64_t * msc, int64_t * sbc );    /**     * Wait for the MSC to equal target_msc, or, if that has already passed,     * the next time (MSC % divisor) is equal to remainder.  If divisor is     * zero, the function will return as soon as MSC is greater than or equal     * to target_msc.     *      * \since Internal API version 20030317.     */    int (*waitForMSC)( __DRInativeDisplay * dpy, void *drawablePriv,		       int64_t target_msc, int64_t divisor, int64_t remainder,		       int64_t * msc, int64_t * sbc );    /**     * Like \c swapBuffers, but does NOT have an implicit \c glFlush.  Once     * rendering is complete, waits until MSC is equal to target_msc, or     * if that has already passed, waits until (MSC % divisor) is equal     * to remainder.  If divisor is zero, the swap will happen as soon as     * MSC is greater than or equal to target_msc.     *      * \since Internal API version 20030317.     */    int64_t (*swapBuffersMSC)(__DRInativeDisplay *dpy, void *drawablePrivate,			      int64_t target_msc,			      int64_t divisor, int64_t remainder);    /**     * Enable or disable frame usage tracking.     *      * \since Internal API version 20030317.     */    int (*frameTracking)(__DRInativeDisplay *dpy, void *drawablePrivate, GLboolean enable);    /**     * Retrieve frame usage information.     *      * \since Internal API version 20030317.     */    int (*queryFrameTracking)(__DRInativeDisplay *dpy, void *drawablePrivate,			      int64_t * sbc, int64_t * missedFrames,			      float * lastMissedUsage, float * usage );    /**     * Used by drivers that implement the GLX_SGI_swap_control or     * GLX_MESA_swap_control extension.     *     * \since Internal API version 20030317.     */    unsigned swap_interval;    /**     * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension.     *     * \since Internal API version 20060314.     */    void (*copySubBuffer)(__DRInativeDisplay *dpy, void *drawablePrivate,			  int x, int y, int w, int h);};#endif

⌨️ 快捷键说明

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