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

📄 xf86dri.c

📁 显驱动 Intel英特尔G45G43G41G35G33G31G965Q963Q965GM965系列显卡最新X.Org驱动2.4.0版For Linux
💻 C
📖 第 1 页 / 共 2 页
字号:
	SyncHandle();	TRACE("GetClientDriverName... return False");	return False;    }    *ddxDriverMajorVersion = rep.ddxDriverMajorVersion;    *ddxDriverMinorVersion = rep.ddxDriverMinorVersion;    *ddxDriverPatchVersion = rep.ddxDriverPatchVersion;    if (rep.length) {	if (!(*clientDriverName =		(char *)Xcalloc(rep.clientDriverNameLength + 1, 1))) {	    _XEatData(dpy, ((rep.clientDriverNameLength + 3) & ~3));	    UnlockDisplay(dpy);	    SyncHandle();	    TRACE("GetClientDriverName... return False");	    return False;	}	_XReadPad(dpy, *clientDriverName, rep.clientDriverNameLength);    } else {	*clientDriverName = NULL;    }    UnlockDisplay(dpy);    SyncHandle();    TRACE("GetClientDriverName... return True");    return True;}BooluniDRICreateContextWithConfig(Display *dpy, int screen, int configID,			      XID context, drm_context_t *hHWContext){    XExtDisplayInfo *info = find_display(dpy);    xXF86DRICreateContextReply rep;    xXF86DRICreateContextReq *req;    TRACE("CreateContext... id %d", context);    uniDRICheckExtension(dpy, info, False);    LockDisplay(dpy);    GetReq(XF86DRICreateContext, req);    req->reqType = info->codes->major_opcode;    req->driReqType = X_XF86DRICreateContext;    req->visual = configID;    req->screen = screen;    req->context = context;    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {	UnlockDisplay(dpy);	SyncHandle();	TRACE("CreateContext... return False");	return False;    }    *hHWContext = rep.hHWContext;    UnlockDisplay(dpy);    SyncHandle();    TRACE("CreateContext... return True");    return True;}BooluniDRICreateContext(Display *dpy, int screen, Visual *visual,		    XID context, drm_context_t *hHWContext){    return uniDRICreateContextWithConfig(dpy, screen,	   visual->visualid, context, hHWContext);}BooluniDRIDestroyContext(Display * ndpy, int screen, XID context){    Display *const dpy = (Display *) ndpy;    XExtDisplayInfo *info = find_display(dpy);    xXF86DRIDestroyContextReq *req;    TRACE("DestroyContext... id %d", context);    uniDRICheckExtension(dpy, info, False);    LockDisplay(dpy);    GetReq(XF86DRIDestroyContext, req);    req->reqType = info->codes->major_opcode;    req->driReqType = X_XF86DRIDestroyContext;    req->screen = screen;    req->context = context;    UnlockDisplay(dpy);    SyncHandle();    TRACE("DestroyContext... return True");    return True;}BooluniDRICreateDrawable(Display * ndpy, int screen,    Drawable drawable, drm_drawable_t * hHWDrawable){    Display *const dpy = (Display *) ndpy;    XExtDisplayInfo *info = find_display(dpy);    xXF86DRICreateDrawableReply rep;    xXF86DRICreateDrawableReq *req;    TRACE("CreateDrawable...");    uniDRICheckExtension(dpy, info, False);    LockDisplay(dpy);    GetReq(XF86DRICreateDrawable, req);    req->reqType = info->codes->major_opcode;    req->driReqType = X_XF86DRICreateDrawable;    req->screen = screen;    req->drawable = drawable;    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {	UnlockDisplay(dpy);	SyncHandle();	TRACE("CreateDrawable... return False");	return False;    }    *hHWDrawable = rep.hHWDrawable;    UnlockDisplay(dpy);    SyncHandle();    TRACE("CreateDrawable... return True");    return True;}BooluniDRIDestroyDrawable(Display * ndpy, int screen, Drawable drawable){    Display *const dpy = (Display *) ndpy;    XExtDisplayInfo *info = find_display(dpy);    xXF86DRIDestroyDrawableReq *req;    TRACE("DestroyDrawable...");    uniDRICheckExtension(dpy, info, False);    LockDisplay(dpy);    GetReq(XF86DRIDestroyDrawable, req);    req->reqType = info->codes->major_opcode;    req->driReqType = X_XF86DRIDestroyDrawable;    req->screen = screen;    req->drawable = drawable;    UnlockDisplay(dpy);    SyncHandle();    TRACE("DestroyDrawable... return True");    return True;}BooluniDRIGetDrawableInfo(Display * dpy, int screen, Drawable drawable,    unsigned int *index, unsigned int *stamp,    int *X, int *Y, int *W, int *H,    int *numClipRects, drm_clip_rect_t ** pClipRects,    int *backX, int *backY,    int *numBackClipRects, drm_clip_rect_t ** pBackClipRects){    XExtDisplayInfo *info = find_display(dpy);    xXF86DRIGetDrawableInfoReply rep;    xXF86DRIGetDrawableInfoReq *req;    int total_rects;    TRACE("GetDrawableInfo...");    uniDRICheckExtension(dpy, info, False);    LockDisplay(dpy);    GetReq(XF86DRIGetDrawableInfo, req);    req->reqType = info->codes->major_opcode;    req->driReqType = X_XF86DRIGetDrawableInfo;    req->screen = screen;    req->drawable = drawable;    if (!_XReply(dpy, (xReply *) & rep, 1, xFalse)) {	UnlockDisplay(dpy);	SyncHandle();	TRACE("GetDrawableInfo... return False");	return False;    }    *index = rep.drawableTableIndex;    *stamp = rep.drawableTableStamp;    *X = (int)rep.drawableX;    *Y = (int)rep.drawableY;    *W = (int)rep.drawableWidth;    *H = (int)rep.drawableHeight;    *numClipRects = rep.numClipRects;    total_rects = *numClipRects;    *backX = rep.backX;    *backY = rep.backY;    *numBackClipRects = rep.numBackClipRects;    total_rects += *numBackClipRects;#if 0    /* Because of the fix in Xserver/GL/dri/xf86dri.c, this check breaks     * backwards compatibility (Because of the >> 2 shift) but the fix     * enables multi-threaded apps to work.     */    if (rep.length != ((((SIZEOF(xXF86DRIGetDrawableInfoReply) -			SIZEOF(xGenericReply) +			total_rects * sizeof(drm_clip_rect_t)) +		    3) & ~3) >> 2)) {	_XEatData(dpy, rep.length);	UnlockDisplay(dpy);	SyncHandle();	TRACE("GetDrawableInfo... return False");	return False;    }#endif    if (*numClipRects) {	int len = sizeof(drm_clip_rect_t) * (*numClipRects);	*pClipRects = (drm_clip_rect_t *) Xcalloc(len, 1);	if (*pClipRects)	    _XRead(dpy, (char *)*pClipRects, len);    } else {	*pClipRects = NULL;    }    if (*numBackClipRects) {	int len = sizeof(drm_clip_rect_t) * (*numBackClipRects);	*pBackClipRects = (drm_clip_rect_t *) Xcalloc(len, 1);	if (*pBackClipRects)	    _XRead(dpy, (char *)*pBackClipRects, len);    } else {	*pBackClipRects = NULL;    }    UnlockDisplay(dpy);    SyncHandle();    TRACE("GetDrawableInfo... return True");    return True;}BooluniDRIGetDeviceInfo(Display *dpy, int screen, drm_handle_t *hFrameBuffer,		    int *fbOrigin, int *fbSize, int *fbStride,		    int *devPrivateSize, void **pDevPrivate){    XExtDisplayInfo *info = find_display(dpy);    xXF86DRIGetDeviceInfoReply rep;    xXF86DRIGetDeviceInfoReq *req;    TRACE("GetDeviceInfo...");    uniDRICheckExtension(dpy, info, False);    LockDisplay(dpy);    GetReq(XF86DRIGetDeviceInfo, req);    req->reqType = info->codes->major_opcode;    req->driReqType = X_XF86DRIGetDeviceInfo;    req->screen = screen;    if (!_XReply(dpy, (xReply *) & rep, 0, xFalse)) {	UnlockDisplay(dpy);	SyncHandle();	TRACE("GetDeviceInfo... return False");	return False;    }    *hFrameBuffer = rep.hFrameBufferLow;#ifdef LONG64    if (sizeof(drm_handle_t) == 8) {	*hFrameBuffer |= ((unsigned long)rep.hFrameBufferHigh) << 32;    }#endif    *fbOrigin = rep.framebufferOrigin;    *fbSize = rep.framebufferSize;    *fbStride = rep.framebufferStride;    *devPrivateSize = rep.devPrivateSize;    if (rep.length) {	if (!(*pDevPrivate = (void *)Xcalloc(rep.devPrivateSize, 1))) {	    _XEatData(dpy, ((rep.devPrivateSize + 3) & ~3));	    UnlockDisplay(dpy);	    SyncHandle();	    TRACE("GetDeviceInfo... return False");	    return False;	}	_XRead(dpy, (char *)*pDevPrivate, rep.devPrivateSize);    } else {	*pDevPrivate = NULL;    }    UnlockDisplay(dpy);    SyncHandle();    TRACE("GetDeviceInfo... return True");    return True;}

⌨️ 快捷键说明

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