亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sdl_x11modes.c

?? Simple DirectMedia Layer - Simple DirectMedia Layer 是一個跨平臺的多媒體庫設計用來提供快速圖形framebuffer和音頻驅動。應用MPEG為軟件
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*    SDL - Simple DirectMedia Layer    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Library General Public    License as published by the Free Software Foundation; either    version 2 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Library General Public License for more details.    You should have received a copy of the GNU Library General Public    License along with this library; if not, write to the Free    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA    Sam Lantinga    slouken@libsdl.org*/#ifdef SAVE_RCSIDstatic char rcsid = "@(#) $Id: SDL_x11modes.c,v 1.14 2002/09/30 00:35:25 slouken Exp $";#endif/* Utilities for getting and setting the X display mode */#include <stdlib.h>#include <string.h>#include "SDL_timer.h"#include "SDL_error.h"#include "SDL_events.h"#include "SDL_events_c.h"#include "SDL_x11video.h"#include "SDL_x11wm_c.h"#include "SDL_x11modes_c.h"#include "SDL_x11image_c.h"#ifdef HAVE_XINERAMA#include <XFree86/extensions/Xinerama.h>#endif #define MAX(a, b)        (a > b ? a : b)#ifdef XFREE86_VMBool SDL_NAME(XF86VidModeGetModeInfo)(Display *dpy, int scr, SDL_NAME(XF86VidModeModeInfo) *info){    SDL_NAME(XF86VidModeModeLine) *l = (SDL_NAME(XF86VidModeModeLine)*)((char*)info + sizeof info->dotclock);    return SDL_NAME(XF86VidModeGetModeLine)(dpy, scr, &info->dotclock, l);}#endif /* XFREE86_VM */#ifdef XFREE86_VMstatic void save_mode(_THIS){    memset(&saved_mode, 0, sizeof(saved_mode));    SDL_NAME(XF86VidModeGetModeInfo)(SDL_Display,SDL_Screen,&saved_mode);    SDL_NAME(XF86VidModeGetViewPort)(SDL_Display,SDL_Screen,&saved_view.x,&saved_view.y);}#endif#ifdef XFREE86_VMstatic void restore_mode(_THIS){    SDL_NAME(XF86VidModeModeLine) mode;    int unused;    if ( SDL_NAME(XF86VidModeGetModeLine)(SDL_Display, SDL_Screen, &unused, &mode) ) {        if ( (saved_mode.hdisplay != mode.hdisplay) ||             (saved_mode.vdisplay != mode.vdisplay) ) {            SDL_NAME(XF86VidModeSwitchToMode)(SDL_Display, SDL_Screen, &saved_mode);        }    }    if ( (saved_view.x != 0) || (saved_view.y != 0) ) {        SDL_NAME(XF86VidModeSetViewPort)(SDL_Display, SDL_Screen, saved_view.x, saved_view.y);    }}#endif#ifdef XFREE86_VMstatic int cmpmodes(const void *va, const void *vb){    const SDL_NAME(XF86VidModeModeInfo) *a = *(const SDL_NAME(XF86VidModeModeInfo)**)va;    const SDL_NAME(XF86VidModeModeInfo) *b = *(const SDL_NAME(XF86VidModeModeInfo)**)vb;    if(a->hdisplay > b->hdisplay)        return -1;    return b->vdisplay - a->vdisplay;}#endifstatic void get_real_resolution(_THIS, int* w, int* h);static void set_best_resolution(_THIS, int width, int height){#ifdef XFREE86_VM    if ( use_vidmode ) {        SDL_NAME(XF86VidModeModeLine) mode;        SDL_NAME(XF86VidModeModeInfo) **modes;        int i;        int nmodes;        if ( SDL_NAME(XF86VidModeGetModeLine)(SDL_Display, SDL_Screen, &i, &mode) &&             SDL_NAME(XF86VidModeGetAllModeLines)(SDL_Display,SDL_Screen,&nmodes,&modes)){            qsort(modes, nmodes, sizeof *modes, cmpmodes);#ifdef XFREE86_DEBUG            printf("Available modes:\n");            for ( i = 0; i < nmodes; ++i ) {                printf("Mode %d: %dx%d\n", i,                        modes[i]->hdisplay, modes[i]->vdisplay);            }#endif            for ( i = nmodes-1; i > 0 ; --i ) {                if ( (modes[i]->hdisplay >= width) &&                     (modes[i]->vdisplay >= height) )                    break;            }            if ( (modes[i]->hdisplay != mode.hdisplay) ||                 (modes[i]->vdisplay != mode.vdisplay) ) {                SDL_NAME(XF86VidModeSwitchToMode)(SDL_Display, SDL_Screen, modes[i]);            }            XFree(modes);        }    }#endif /* XFREE86_VM */                                /* XiG */#ifdef HAVE_XIGXME#ifdef XIG_DEBUG    fprintf(stderr, "XME: set_best_resolution(): w = %d, h = %d\n",            width, height);#endif    if ( SDL_modelist ) {        int i;        for ( i=0; SDL_modelist[i]; ++i ) {            if ( (SDL_modelist[i]->w >= width) &&                 (SDL_modelist[i]->h >= height) ) {                break;            }        }                if ( SDL_modelist[i] ) { /* found one, lets try it */            int w, h;                    /* check current mode so we can avoid uneccessary mode changes */            get_real_resolution(this, &w, &h);            if ( (SDL_modelist[i]->w != w) || (SDL_modelist[i]->h != h) ) {# ifdef XIG_DEBUG                fprintf(stderr, "XME: set_best_resolution: "                        "XiGMiscChangeResolution: %d %d\n",                        SDL_modelist[s]->w, SDL_modelist[s]->h);# endif                XiGMiscChangeResolution(SDL_Display,                                         SDL_Screen,                                        0, /* view */                                        SDL_modelist[i]->w,                                         SDL_modelist[i]->h,                                         0);                XSync(SDL_Display, False);            }        }    }#endif /* HAVE_XIGXME */}static void get_real_resolution(_THIS, int* w, int* h){#ifdef XFREE86_VM    if ( use_vidmode ) {        SDL_NAME(XF86VidModeModeLine) mode;        int unused;        if ( SDL_NAME(XF86VidModeGetModeLine)(SDL_Display, SDL_Screen, &unused, &mode) ) {            *w = mode.hdisplay;            *h = mode.vdisplay;            return;        }    }#endif#ifdef HAVE_XIGXME    if ( use_xme ) {        int ractive;        XiGMiscResolutionInfo *modelist;        XiGMiscQueryResolutions(SDL_Display, SDL_Screen,                                0, /* view */                                &ractive, &modelist);        *w = modelist[ractive].width;        *h = modelist[ractive].height;#ifdef XIG_DEBUG        fprintf(stderr, "XME: get_real_resolution: w = %d h = %d\n", *w, *h);#endif        XFree(modelist);        return;    }#endif /* XIG_XME */    *w = DisplayWidth(SDL_Display, SDL_Screen);    *h = DisplayHeight(SDL_Display, SDL_Screen);}/* Called after mapping a window - waits until the window is mapped */void X11_WaitMapped(_THIS, Window win){    XEvent event;    do {        XMaskEvent(SDL_Display, StructureNotifyMask, &event);    } while ( (event.type != MapNotify) || (event.xmap.event != win) );}/* Called after unmapping a window - waits until the window is unmapped */void X11_WaitUnmapped(_THIS, Window win){    XEvent event;    do {        XMaskEvent(SDL_Display, StructureNotifyMask, &event);    } while ( (event.type != UnmapNotify) || (event.xunmap.event != win) );}static void move_cursor_to(_THIS, int x, int y){    XWarpPointer(SDL_Display, None, SDL_Root, 0, 0, 0, 0, x, y);}static int add_visual(_THIS, int depth, int class){    XVisualInfo vi;    if(XMatchVisualInfo(SDL_Display, SDL_Screen, depth, class, &vi)) {        int n = this->hidden->nvisuals;        this->hidden->visuals[n].depth = vi.depth;        this->hidden->visuals[n].visual = vi.visual;        this->hidden->nvisuals++;    }    return(this->hidden->nvisuals);}static int add_visual_byid(_THIS, const char *visual_id){    XVisualInfo *vi, template;    int nvis;    if ( visual_id ) {        memset(&template, 0, (sizeof template));        template.visualid = strtol(visual_id, NULL, 0);        vi = XGetVisualInfo(SDL_Display, VisualIDMask, &template, &nvis);        if ( vi ) {            int n = this->hidden->nvisuals;            this->hidden->visuals[n].depth = vi->depth;            this->hidden->visuals[n].visual = vi->visual;            this->hidden->nvisuals++;            XFree(vi);        }    }    return(this->hidden->nvisuals);}/* Global for the error handler */int vm_event, vm_error = -1;int X11_GetVideoModes(_THIS){#ifdef XFREE86_VM    int buggy_X11;    int vm_major, vm_minor;    int nmodes;    SDL_NAME(XF86VidModeModeInfo) **modes;#endif#ifdef HAVE_XIGXME    int xme_major, xme_minor;    int ractive, nummodes;    XiGMiscResolutionInfo *modelist;#endif    int i, n;    int screen_w;    int screen_h;    vm_error = -1;    use_vidmode = 0;    screen_w = DisplayWidth(SDL_Display, SDL_Screen);    screen_h = DisplayHeight(SDL_Display, SDL_Screen);#ifdef XFREE86_VM    /* Metro-X 4.3.0 and earlier has a broken implementation of       XF86VidModeGetAllModeLines() - it hangs the client.     */    buggy_X11 = 0;    if ( strcmp(ServerVendor(SDL_Display), "Metro Link Incorporated") == 0 ) {        FILE *metro_fp;        metro_fp = fopen("/usr/X11R6/lib/X11/Metro/.version", "r");        if ( metro_fp != NULL ) {            int major, minor, patch, version;            major = 0; minor = 0; patch = 0;            fscanf(metro_fp, "%d.%d.%d", &major, &minor, &patch);            version = major*100+minor*10+patch;            if ( version < 431 ) {                buggy_X11 = 1;            }            fclose(metro_fp);        }    }#if defined(__alpha__) || defined(__powerpc__)    /* The alpha and PPC XFree86 servers are also buggy */    buggy_X11 = 1;#endif    /* Enumerate the available fullscreen modes */    if ( ! buggy_X11 ) {        if ( SDL_NAME(XF86VidModeQueryExtension)(SDL_Display, &vm_event, &vm_error) &&              SDL_NAME(XF86VidModeQueryVersion)(SDL_Display, &vm_major, &vm_minor) ) {#ifdef BROKEN_XFREE86_4001#ifdef X_XF86VidModeGetDotClocks  /* Compiled under XFree86 4.0 */                /* Earlier X servers hang when doing vidmode */                if ( vm_major < 2 ) {#ifdef XFREE86_DEBUG                    printf("Compiled under XFree86 4.0, server is XFree86 3.X\n");#endif                    buggy_X11 = 1;                }#else                /* XFree86 3.X code works with XFree86 4.0 servers */;#endif /* XFree86 4.0 */#endif /* XFree86 4.02 and newer are fixed wrt backwards compatibility */        } else {            buggy_X11 = 1;        }    }    if ( ! buggy_X11 &&         SDL_NAME(XF86VidModeGetAllModeLines)(SDL_Display, SDL_Screen,&nmodes,&modes) ) {        qsort(modes, nmodes, sizeof *modes, cmpmodes);        SDL_modelist = (SDL_Rect **)malloc((nmodes+2)*sizeof(SDL_Rect *));        if ( SDL_modelist ) {            n = 0;            for ( i=0; i<nmodes; ++i ) {                int w, h;                /* Check to see if we should add the screen size (Xinerama) */                w = modes[i]->hdisplay;                h = modes[i]->vdisplay;                if ( (screen_w * screen_h) >= (w * h) ) {                    if ( (screen_w != w) || (screen_h != h) ) {                        SDL_modelist[n] = (SDL_Rect *)malloc(sizeof(SDL_Rect));                        if ( SDL_modelist[n] ) {                            SDL_modelist[n]->x = 0;                            SDL_modelist[n]->y = 0;                            SDL_modelist[n]->w = screen_w;                            SDL_modelist[n]->h = screen_h;                            ++n;                        }                    }                    screen_w = 0;                    screen_h = 0;                }                /* Add the size from the video mode list */                SDL_modelist[n] = (SDL_Rect *)malloc(sizeof(SDL_Rect));                if ( SDL_modelist[n] == NULL ) {                    break;                }                SDL_modelist[n]->x = 0;                SDL_modelist[n]->y = 0;                SDL_modelist[n]->w = w;                SDL_modelist[n]->h = h;                ++n;            }            SDL_modelist[n] = NULL;        }        XFree(modes);        use_vidmode = vm_major * 100 + vm_minor;        save_mode(this);    }#endif /* XFREE86_VM */                                /* XiG */#ifdef HAVE_XIGXME    /* first lets make sure we have the extension, and it's at least v2.0 */    if (XiGMiscQueryVersion(SDL_Display, &xme_major, &xme_minor)) {#ifdef XIG_DEBUG        fprintf(stderr, "XME: XiGMiscQueryVersion: V%d.%d\n",                xme_major, xme_minor);#endif        /* work around a XiGMisc bogosity in our version of libXext */        if (xme_major == 0 && xme_major == 0) {            /* Ideally libxme would spit this out, but the problem is that               the right Query func will never be called if using the bogus               libXext version.             */            fprintf(stderr, "XME: If you are using Xi Graphics CDE and a Summit server, you need to\n""XME: get the libXext update from our ftp site before fullscreen switching\n""XME: will work.  Fullscreen switching is only supported on Summit Servers\n");          }    } else {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜电影在线观看| 69p69国产精品| 国产一区二区三区免费在线观看 | 日韩激情一二三区| 国产精品九色蝌蚪自拍| 久久久精品黄色| 欧美国产日本韩| 国产精品色在线观看| 欧美国产日韩一二三区| 国产精品久久久久久亚洲毛片| 久久久噜噜噜久久中文字幕色伊伊 | 综合在线观看色| 欧美国产一区视频在线观看| 国产亚洲精品福利| 亚洲国产精品二十页| 亚洲精品一区二区三区精华液| 精品国产免费人成电影在线观看四季 | 国产精品一区二区在线看| 麻豆精品精品国产自在97香蕉| 麻豆免费看一区二区三区| 国产一区 二区 三区一级| 国产成人aaa| av动漫一区二区| 欧美三级日本三级少妇99| 91 com成人网| 久久久久久久综合日本| 日韩久久一区二区| 首页国产欧美久久| 国产精品一色哟哟哟| 91在线porny国产在线看| 欧美日韩日日夜夜| 久久久综合激的五月天| 亚洲欧美日韩国产另类专区| 亚洲va国产va欧美va观看| 国产在线播放一区二区三区| av一区二区三区在线| 欧美精三区欧美精三区| 久久午夜免费电影| 亚洲已满18点击进入久久| 理论片日本一区| 99久久国产免费看| 日韩一级片网站| 亚洲欧美另类在线| 激情综合网av| 欧美日韩一区二区在线观看| 精品卡一卡二卡三卡四在线| 一卡二卡三卡日韩欧美| 国产老女人精品毛片久久| 91国偷自产一区二区三区观看| 精品美女被调教视频大全网站| 国产精品毛片大码女人| 久久精品国产99国产| 色婷婷狠狠综合| 国产欧美日韩三区| 看片的网站亚洲| 精品婷婷伊人一区三区三| 国产精品全国免费观看高清 | 国产一区视频导航| 欧美性色欧美a在线播放| 国产精品久久夜| 国产精品一区在线观看你懂的| 91精品国产综合久久久蜜臀粉嫩 | 欧美电视剧免费观看| 一区二区三区日韩| 成人性生交大片免费看在线播放| 欧美一区二区三区成人| 一级做a爱片久久| 91视频观看免费| 欧美激情一二三区| 国产精品综合二区| 欧美大片日本大片免费观看| 亚洲成人资源在线| 欧美日韩一区二区三区在线看| 亚洲人成7777| 日本韩国视频一区二区| 亚洲私人影院在线观看| 成人av电影在线观看| 欧美激情一区二区三区全黄| 久久国内精品视频| wwww国产精品欧美| 国产麻豆成人传媒免费观看| 欧美精品一区二区三区在线| 老司机精品视频一区二区三区| 日韩三级免费观看| 精品一区二区国语对白| 久久久久久电影| 欧美午夜精品一区二区蜜桃| 亚洲欧美日韩国产中文在线| 色哟哟一区二区| 亚洲第一主播视频| 欧美一卡二卡三卡四卡| 老司机一区二区| 中文字幕不卡在线| 91碰在线视频| 日韩成人一级片| 日韩西西人体444www| 国产精品一区二区在线播放| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 蜜桃久久久久久久| 久久日韩粉嫩一区二区三区| 国产成人av一区二区| 亚洲三级小视频| 欧美精品电影在线播放| 久久国产精品99久久久久久老狼| 国产日韩欧美a| 91在线观看高清| 青青青伊人色综合久久| 久久视频一区二区| 91九色02白丝porn| 久草在线在线精品观看| 自拍偷拍亚洲综合| 欧美一区二区视频在线观看2020| 国产精品一二三| 亚洲激情图片小说视频| 精品剧情v国产在线观看在线| 北岛玲一区二区三区四区| 亚洲国产成人av| 国产精品视频九色porn| 欧美日韩亚洲丝袜制服| 国产suv一区二区三区88区| 午夜欧美视频在线观看| 国产欧美1区2区3区| 制服丝袜中文字幕一区| 99久久夜色精品国产网站| 日韩va欧美va亚洲va久久| 中文字幕日韩av资源站| 欧美成人官网二区| 欧美专区日韩专区| 成人一级视频在线观看| 男人的天堂久久精品| 亚洲五码中文字幕| 亚洲欧美一区二区三区极速播放| 日韩精品一区二区三区中文不卡| 色哟哟在线观看一区二区三区| 精一区二区三区| 视频一区欧美精品| 亚洲精品久久久蜜桃| 欧美韩日一区二区三区| 久久嫩草精品久久久精品| 9191精品国产综合久久久久久| 91网址在线看| 国产91丝袜在线播放| 狠狠v欧美v日韩v亚洲ⅴ| 麻豆专区一区二区三区四区五区| 一区二区欧美精品| 一区二区在线观看免费| 综合精品久久久| 国产精品久久久久久妇女6080 | 亚洲精品视频在线看| 亚洲国产高清不卡| 久久久综合网站| 久久网这里都是精品| 精品久久一二三区| 欧美va亚洲va在线观看蝴蝶网| 7777精品伊人久久久大香线蕉| 欧日韩精品视频| 欧美午夜片在线观看| 欧美日韩在线亚洲一区蜜芽| 91福利国产成人精品照片| 色94色欧美sute亚洲线路二| 91在线国产福利| 91国产福利在线| 欧美日本一区二区三区| 91麻豆精品国产91久久久资源速度| 精品视频999| 欧美一区二区黄| 久久综合成人精品亚洲另类欧美 | 国产女同互慰高潮91漫画| 久久久噜噜噜久噜久久综合| 国产欧美一区二区在线观看| 久久久亚洲欧洲日产国码αv| 欧美精品一区二区久久久| 久久久久久免费毛片精品| 中文一区一区三区高中清不卡| 国产精品蜜臀在线观看| 亚洲乱码精品一二三四区日韩在线| 一区二区三区高清| 午夜精品爽啪视频| 黑人精品欧美一区二区蜜桃| 成人免费看视频| 欧美色图片你懂的| 精品久久久影院| 亚洲色图制服诱惑| 奇米一区二区三区| www.欧美精品一二区| 欧美丝袜第三区| 久久蜜桃一区二区| 亚洲影视在线观看| 国产一区二区三区在线看麻豆| 色综合天天在线| 日韩一级片在线观看| 综合久久久久久| 精品一区二区三区日韩| 91网站在线观看视频| 欧美一级免费观看| 国产精品丝袜一区| 日本亚洲电影天堂| 91日韩在线专区| 久久久久久久久久久久久夜| 亚洲国产欧美日韩另类综合 |