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

📄 xf86vmode.c

📁 Simple DirectMedia Layer - Simple DirectMedia Layer 是一个跨平台的多媒体库设计用来提供快速图形framebuffer和音频驱动。应用MPEG为软件
💻 C
📖 第 1 页 / 共 3 页
字号:
		if (xmdline.privsize > 0) {		    if (!(modelines[i]->private =			    Xcalloc(xmdline.privsize, sizeof(INT32)))) {			_XEatData(dpy, (xmdline.privsize) * sizeof(INT32));			Xfree(modelines[i]->private);		    } else {			_XRead(dpy, (char*)modelines[i]->private,			     xmdline.privsize * sizeof(INT32));		    }		} else {		    modelines[i]->private = NULL;		}	    }	}    }    *modelinesPtr = modelines;    UnlockDisplay(dpy);    SyncHandle();    return True;}/* * GetReq replacement for use with VidMode protocols earlier than 2.0 */#if !defined(UNIXCPP) || defined(ANSICPP)#define GetOldReq(name, oldname, req) \        WORD64ALIGN\	if ((dpy->bufptr + SIZEOF(x##oldname##Req)) > dpy->bufmax)\		_XFlush(dpy);\	req = (x##oldname##Req *)(dpy->last_req = dpy->bufptr);\	req->reqType = X_##name;\	req->length = (SIZEOF(x##oldname##Req))>>2;\	dpy->bufptr += SIZEOF(x##oldname##Req);\	dpy->request++#else  /* non-ANSI C uses empty comment instead of "##" for token concatenation */#define GetOldReq(name, oldname, req) \        WORD64ALIGN\	if ((dpy->bufptr + SIZEOF(x/**/oldname/**/Req)) > dpy->bufmax)\		_XFlush(dpy);\	req = (x/**/oldname/**/Req *)(dpy->last_req = dpy->bufptr);\	req->reqType = X_/**/name;\	req->length = (SIZEOF(x/**/oldname/**/Req))>>2;\	dpy->bufptr += SIZEOF(x/**/oldname/**/Req);\	dpy->request++#endifBoolSDL_NAME(XF86VidModeAddModeLine) (dpy, screen, newmodeline, aftermodeline)    Display *dpy;    int screen;    SDL_NAME(XF86VidModeModeInfo)* newmodeline;    SDL_NAME(XF86VidModeModeInfo)* aftermodeline;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeAddModeLineReq *req;    xXF86OldVidModeAddModeLineReq *oldreq;    int majorVersion, minorVersion;    XF86VidModeCheckExtension (dpy, info, False);    SDL_NAME(XF86VidModeQueryVersion)(dpy, &majorVersion, &minorVersion);    LockDisplay(dpy);    if (majorVersion < 2) {	GetOldReq(XF86VidModeAddModeLine, XF86OldVidModeAddModeLine, oldreq);	oldreq->reqType = info->codes->major_opcode;	oldreq->xf86vidmodeReqType = X_XF86VidModeAddModeLine;	oldreq->screen = screen;	oldreq->dotclock =	newmodeline->dotclock;	oldreq->hdisplay =	newmodeline->hdisplay;	oldreq->hsyncstart =	newmodeline->hsyncstart;	oldreq->hsyncend =	newmodeline->hsyncend;	oldreq->htotal =	newmodeline->htotal;	oldreq->vdisplay =	newmodeline->vdisplay;	oldreq->vsyncstart =	newmodeline->vsyncstart;	oldreq->vsyncend =	newmodeline->vsyncend;	oldreq->vtotal =	newmodeline->vtotal;	oldreq->flags =		newmodeline->flags;	oldreq->privsize =	newmodeline->privsize;	if (aftermodeline != NULL) {	    oldreq->after_dotclock =	aftermodeline->dotclock;	    oldreq->after_hdisplay =	aftermodeline->hdisplay;	    oldreq->after_hsyncstart =	aftermodeline->hsyncstart;	    oldreq->after_hsyncend =	aftermodeline->hsyncend;	    oldreq->after_htotal =	aftermodeline->htotal;	    oldreq->after_vdisplay =	aftermodeline->vdisplay;	    oldreq->after_vsyncstart =	aftermodeline->vsyncstart;	    oldreq->after_vsyncend =	aftermodeline->vsyncend;	    oldreq->after_vtotal =	aftermodeline->vtotal;	    oldreq->after_flags =	aftermodeline->flags;	} else {	    oldreq->after_dotclock =	0;	    oldreq->after_hdisplay =	0;	    oldreq->after_hsyncstart =	0;	    oldreq->after_hsyncend =	0;	    oldreq->after_htotal =	0;	    oldreq->after_vdisplay =	0;	    oldreq->after_vsyncstart =	0;	    oldreq->after_vsyncend =	0;	    oldreq->after_vtotal =	0;	    oldreq->after_flags =	0;	}	if (newmodeline->privsize) {	    oldreq->length += newmodeline->privsize;	    Data32(dpy, (long *) newmodeline->private,	       newmodeline->privsize * sizeof(INT32));	}    } else {	GetReq(XF86VidModeAddModeLine, req);	req->reqType = info->codes->major_opcode;	req->xf86vidmodeReqType = X_XF86VidModeAddModeLine;	req->screen = screen;	req->dotclock =		newmodeline->dotclock;	req->hdisplay =		newmodeline->hdisplay;	req->hsyncstart =	newmodeline->hsyncstart;	req->hsyncend =		newmodeline->hsyncend;	req->htotal =		newmodeline->htotal;	req->hskew =		newmodeline->hskew;	req->vdisplay =		newmodeline->vdisplay;	req->vsyncstart =	newmodeline->vsyncstart;	req->vsyncend =		newmodeline->vsyncend;	req->vtotal =		newmodeline->vtotal;	req->flags =		newmodeline->flags;	req->privsize =		newmodeline->privsize;	if (aftermodeline != NULL) {	    req->after_dotclock =	aftermodeline->dotclock;	    req->after_hdisplay =	aftermodeline->hdisplay;	    req->after_hsyncstart =	aftermodeline->hsyncstart;	    req->after_hsyncend =	aftermodeline->hsyncend;	    req->after_htotal =		aftermodeline->htotal;	    req->after_hskew =		aftermodeline->hskew;	    req->after_vdisplay =	aftermodeline->vdisplay;	    req->after_vsyncstart =	aftermodeline->vsyncstart;	    req->after_vsyncend =	aftermodeline->vsyncend;	    req->after_vtotal =		aftermodeline->vtotal;	    req->after_flags =		aftermodeline->flags;	} else {	    req->after_dotclock =	0;	    req->after_hdisplay =	0;	    req->after_hsyncstart =	0;	    req->after_hsyncend =	0;	    req->after_htotal =		0;	    req->after_hskew =		0;	    req->after_vdisplay =	0;	    req->after_vsyncstart =	0;	    req->after_vsyncend =	0;	    req->after_vtotal =		0;	    req->after_flags =		0;	}	if (newmodeline->privsize) {	    req->length += newmodeline->privsize;	    Data32(dpy, (long *) newmodeline->private,	       newmodeline->privsize * sizeof(INT32));	}    }    UnlockDisplay(dpy);    SyncHandle();    return True;}BoolSDL_NAME(XF86VidModeDeleteModeLine) (dpy, screen, modeline)    Display *dpy;    int screen;    SDL_NAME(XF86VidModeModeInfo)* modeline;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeDeleteModeLineReq *req;    xXF86OldVidModeDeleteModeLineReq *oldreq;    int majorVersion, minorVersion;    XF86VidModeCheckExtension (dpy, info, 0);    SDL_NAME(XF86VidModeQueryVersion)(dpy, &majorVersion, &minorVersion);    LockDisplay(dpy);    if (majorVersion < 2) {	GetOldReq(XF86VidModeDeleteModeLine, XF86OldVidModeDeleteModeLine, oldreq);	oldreq->reqType = info->codes->major_opcode;	oldreq->xf86vidmodeReqType = X_XF86VidModeDeleteModeLine;	oldreq->screen = screen;	oldreq->dotclock =	modeline->dotclock;	oldreq->hdisplay =	modeline->hdisplay;	oldreq->hsyncstart =	modeline->hsyncstart;	oldreq->hsyncend =	modeline->hsyncend;	oldreq->htotal =	modeline->htotal;	oldreq->vdisplay =	modeline->vdisplay;	oldreq->vsyncstart =	modeline->vsyncstart;	oldreq->vsyncend =	modeline->vsyncend;	oldreq->vtotal =	modeline->vtotal;	oldreq->flags =		modeline->flags;	oldreq->privsize =	modeline->privsize;	if (modeline->privsize) {	    oldreq->length += modeline->privsize;	    Data32(dpy, (long *) modeline->private,	       modeline->privsize * sizeof(INT32));	}    } else {	GetReq(XF86VidModeDeleteModeLine, req);	req->reqType = info->codes->major_opcode;	req->xf86vidmodeReqType = X_XF86VidModeDeleteModeLine;	req->screen = screen;	req->dotclock =		modeline->dotclock;	req->hdisplay =		modeline->hdisplay;	req->hsyncstart =	modeline->hsyncstart;	req->hsyncend =		modeline->hsyncend;	req->htotal =		modeline->htotal;	req->hskew =		modeline->hskew;	req->vdisplay =		modeline->vdisplay;	req->vsyncstart =	modeline->vsyncstart;	req->vsyncend =		modeline->vsyncend;	req->vtotal =		modeline->vtotal;	req->flags =		modeline->flags;	req->privsize =		modeline->privsize;	if (modeline->privsize) {	    req->length += modeline->privsize;	    Data32(dpy, (long *) modeline->private,	       modeline->privsize * sizeof(INT32));	}    }    UnlockDisplay(dpy);    SyncHandle();    return True;}BoolSDL_NAME(XF86VidModeModModeLine) (dpy, screen, modeline)    Display *dpy;    int screen;    SDL_NAME(XF86VidModeModeLine)* modeline;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeModModeLineReq *req;    xXF86OldVidModeModModeLineReq *oldreq;    int majorVersion, minorVersion;    XF86VidModeCheckExtension (dpy, info, 0);    SDL_NAME(XF86VidModeQueryVersion)(dpy, &majorVersion, &minorVersion);    LockDisplay(dpy);    if (majorVersion < 2) {	GetOldReq(XF86VidModeModModeLine, XF86OldVidModeModModeLine, oldreq);	oldreq->reqType = info->codes->major_opcode;	oldreq->xf86vidmodeReqType = X_XF86VidModeModModeLine;	oldreq->screen = screen;	oldreq->hdisplay =	modeline->hdisplay;	oldreq->hsyncstart =	modeline->hsyncstart;	oldreq->hsyncend =	modeline->hsyncend;	oldreq->htotal =	modeline->htotal;	oldreq->vdisplay =	modeline->vdisplay;	oldreq->vsyncstart =	modeline->vsyncstart;	oldreq->vsyncend =	modeline->vsyncend;	oldreq->vtotal =	modeline->vtotal;	oldreq->flags =		modeline->flags;	oldreq->privsize =	modeline->privsize;	if (modeline->privsize) {	    oldreq->length += modeline->privsize;	    Data32(dpy, (long *) modeline->private,	       modeline->privsize * sizeof(INT32));	}    } else {	GetReq(XF86VidModeModModeLine, req);	req->reqType = info->codes->major_opcode;	req->xf86vidmodeReqType = X_XF86VidModeModModeLine;	req->screen = screen;	req->hdisplay =		modeline->hdisplay;	req->hsyncstart =	modeline->hsyncstart;	req->hsyncend =		modeline->hsyncend;	req->htotal =		modeline->htotal;	req->hskew =		modeline->hskew;	req->vdisplay =		modeline->vdisplay;	req->vsyncstart =	modeline->vsyncstart;	req->vsyncend =		modeline->vsyncend;	req->vtotal =		modeline->vtotal;	req->flags =		modeline->flags;	req->privsize =		modeline->privsize;	if (modeline->privsize) {	    req->length += modeline->privsize;	    Data32(dpy, (long *) modeline->private,	       modeline->privsize * sizeof(INT32));	}    }    UnlockDisplay(dpy);    SyncHandle();    return True;}StatusSDL_NAME(XF86VidModeValidateModeLine) (dpy, screen, modeline)    Display *dpy;    int screen;    SDL_NAME(XF86VidModeModeInfo)* modeline;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeValidateModeLineReq *req;    xXF86OldVidModeValidateModeLineReq *oldreq;    xXF86VidModeValidateModeLineReply rep;    int majorVersion, minorVersion;    XF86VidModeCheckExtension (dpy, info, 0);    SDL_NAME(XF86VidModeQueryVersion)(dpy, &majorVersion, &minorVersion);    LockDisplay(dpy);    if (majorVersion < 2) {	GetOldReq(XF86VidModeValidateModeLine, XF86OldVidModeValidateModeLine, oldreq);	oldreq->reqType = info->codes->major_opcode;	oldreq->xf86vidmodeReqType = X_XF86VidModeValidateModeLine;	oldreq->screen = screen;	oldreq->dotclock =	modeline->dotclock;	oldreq->hdisplay =	modeline->hdisplay;	oldreq->hsyncstart =	modeline->hsyncstart;	oldreq->hsyncend =	modeline->hsyncend;	oldreq->htotal =	modeline->htotal;	oldreq->vdisplay =	modeline->vdisplay;	oldreq->vsyncstart =	modeline->vsyncstart;	oldreq->vsyncend =	modeline->vsyncend;	oldreq->vtotal =	modeline->vtotal;	oldreq->flags =		modeline->flags;	oldreq->privsize =	modeline->privsize;	if (modeline->privsize) {	    oldreq->length += modeline->privsize;	    Data32(dpy, (long *) modeline->private,	       modeline->privsize * sizeof(INT32));	}    } else {	GetReq(XF86VidModeValidateModeLine, req);	req->reqType = info->codes->major_opcode;	req->xf86vidmodeReqType = X_XF86VidModeValidateModeLine;	req->screen = screen;	req->dotclock =		modeline->dotclock;	req->hdisplay =		modeline->hdisplay;	req->hsyncstart =	modeline->hsyncstart;	req->hsyncend =		modeline->hsyncend;	req->htotal =		modeline->htotal;	req->hskew =		modeline->hskew;	req->vdisplay =		modeline->vdisplay;	req->vsyncstart =	modeline->vsyncstart;	req->vsyncend =		modeline->vsyncend;	req->vtotal =		modeline->vtotal;	req->flags =		modeline->flags;	req->privsize =		modeline->privsize;	if (modeline->privsize) {	    req->length += modeline->privsize;	    Data32(dpy, (long *) modeline->private,	       modeline->privsize * sizeof(INT32));	}    }    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {	UnlockDisplay(dpy);	SyncHandle();	return MODE_BAD;    }    UnlockDisplay(dpy);    SyncHandle();    return rep.status;}BoolSDL_NAME(XF86VidModeSwitchMode)(dpy, screen, zoom)    Display* dpy;    int screen;    int zoom;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeSwitchModeReq *req;    XF86VidModeCheckExtension (dpy, info, False);    LockDisplay(dpy);    GetReq(XF86VidModeSwitchMode, req);    req->reqType = info->codes->major_opcode;    req->xf86vidmodeReqType = X_XF86VidModeSwitchMode;    req->screen = screen;    req->zoom = zoom;    UnlockDisplay(dpy);    SyncHandle();    return True;}    BoolSDL_NAME(XF86VidModeSwitchToMode)(dpy, screen, modeline)    Display* dpy;    int screen;    SDL_NAME(XF86VidModeModeInfo)* modeline;{    XExtDisplayInfo *info = find_display (dpy);    xXF86VidModeSwitchToModeReq *req;    xXF86OldVidModeSwitchToModeReq *oldreq;    int majorVersion, minorVersion;    Bool protocolBug = False;    XF86VidModeCheckExtension (dpy, info, False);    /*     * Note: There was a bug in the protocol implementation in versions     * 0.x with x < 8 (the .private field wasn't expected to be sent over     * the wire).  Check the server's version, and accept the old format     * if appropriate.     */    SDL_NAME(XF86VidModeQueryVersion)(dpy, &majorVersion, &minorVersion);    if (majorVersion == 0 && minorVersion < 8) {	protocolBug = True;#ifdef DEBUG

⌨️ 快捷键说明

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