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

📄 s3v_dri.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
字号:
/* * Author: Max Lingua <sunmax@libero.it> */#ifndef _S3V_DRI#define _S3V_DRI#include "s3v_common.h"#define S3V_MAX_DRAWABLES (S3V_DMA_BUF_NR/2) /* 32 */ /* 256 */ /* FIXME */typedef struct{   int deviceID;   int width;   int height;   int mem;   int cpp;   int bitsPerPixel;   int fbOffset;   int fbStride;   int logTextureGranularity;   int textureOffset;    drm_handle_t regs;   drmSize regsSize;   unsigned int sarea_priv_offset;/*   drmAddress regsMap;   drmSize textureSize;   drm_handle_t textures;*/#if 0   drm_handle_t agp_buffers;   drmSize agp_buf_size;#endif/*   drmBufMapPtr drmBufs;   int irq;   unsigned int sarea_priv_offset;*//* FIXME: cleanup ! */   drmSize            registerSize; /* == S3V_MMIO_REGSIZE */   drm_handle_t       registerHandle;   drmSize            pciSize;   drm_handle_t       pciMemHandle;   drmSize            frontSize;    /* == videoRambytes *//* drm_handle_t       frontHandle; */   unsigned long      frontOffset;  /* == fbOffset */   int                frontPitch;/* unsigned char      *front; */   unsigned int       bufferSize; /* size of depth/back buffer */   drmSize            backSize;/* drm_handle_t       backHandle; */   unsigned long      backOffset;   int                backPitch;/* unsigned char      *back; */   drmSize            depthSize;/* drm_handle_t       depthHandle; */   unsigned long      depthOffset;   int                depthPitch;/* unsigned char      *depth; */   drmSize            texSize;/* drm_handle_t       texHandle; */   unsigned long      texOffset;   int                texPitch;/* unsigned char      *tex; */   drmSize            dmaBufSize;       /* Size of buffers (in bytes) */   drm_handle_t       dmaBufHandle;     /* Handle from drmAddMap */   unsigned long      dmaBufOffset;     /* Offset/Start */   int                dmaBufPitch;      /* Pitch */   unsigned char      *dmaBuf;          /* Map */   int                bufNumBufs;       /* Number of buffers */   drmBufMapPtr       buffers;          /* Buffer map */} S3VDRIRec, *S3VDRIPtr;/* WARNING: Do not change the SAREA structure without changing the kernel * as well */typedef struct {   unsigned char next, prev; /* indices to form a circular LRU  */   unsigned char in_use;   /* owned by a client, or free? */   int age;                /* tracked by clients to update local LRU's */} S3VTexRegionRec, *S3VTexRegionPtr;typedef struct {   unsigned int nbox;   drm_clip_rect_t boxes[S3V_NR_SAREA_CLIPRECTS];      /* Maintain an LRU of contiguous regions of texture space.  If    * you think you own a region of texture memory, and it has an    * age different to the one you set, then you are mistaken and    * it has been stolen by another client.  If global texAge    * hasn't changed, there is no need to walk the list.    *    * These regions can be used as a proxy for the fine-grained    * texture information of other clients - by maintaining them    * in the same lru which is used to age their own textures,    * clients have an approximate lru for the whole of global    * texture space, and can make informed decisions as to which    * areas to kick out.  There is no need to choose whether to    * kick out your own texture or someone else's - simply eject    * them all in LRU order.      */   S3VTexRegionRec texList[S3V_NR_TEX_REGIONS+1]; /* Last elt is sentinal */      int texAge;             /* last time texture was uploaded */      int last_enqueue;       /* last time a buffer was enqueued */   int last_dispatch;      /* age of the most recently dispatched buffer */   int last_quiescent;     /*  */      int ctxOwner;           /* last context to upload state */} S3VSAREARec, *S3VSAREAPtr;typedef struct {  /* Nothing here yet */  int dummy;} S3VConfigPrivRec, *S3VConfigPrivPtr;typedef struct {  /* Nothing here yet */  int dummy;} S3VDRIContextRec, *S3VDRIContextPtr;#endif

⌨️ 快捷键说明

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