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

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

?? fbvideo.c

?? mini gui 1.6.8 lib and source
?? C
?? 第 1 頁 / 共 3 頁
字號:
    else {  /* free hw surface */        vidmem_bucket *bucket, *freeable;        /* Look for the bucket in the current list */        for ( bucket=&surfaces; bucket; bucket=bucket->next ) {            if ( bucket == (vidmem_bucket *)request->bucket) {                break;            }        }        if ( bucket && bucket->used ) {        /* Add the memory back to the total */#ifdef FBCON_DEBUG            fprintf(stderr, "Freeing bucket of %d bytes\n", bucket->size);#endif            surfaces_memleft += bucket->size;            /* Can we merge the space with surrounding buckets? */            bucket->used = 0;            if ( bucket->next && ! bucket->next->used ) {#ifdef FBCON_DEBUG                fprintf(stderr, "Merging with next bucket, for %d total bytes\n", bucket->size+bucket->next->size);#endif                freeable = bucket->next;                bucket->size += bucket->next->size;                bucket->next = bucket->next->next;                if ( bucket->next ) {                    bucket->next->prev = bucket;                }                free(freeable);            }            if ( bucket->prev && ! bucket->prev->used ) {#ifdef FBCON_DEBUG                fprintf(stderr, "Merging with previous bucket, for %d total bytes\n", bucket->prev->size+bucket->size);#endif                freeable = bucket;                bucket->prev->size += bucket->size;                bucket->prev->next = bucket->next;                if ( bucket->next ) {                    bucket->next->prev = bucket->prev;                }                free(freeable);            }        }    }}static int FB_AllocHWSurface (_THIS, GAL_Surface *surface){    REQ_HWSURFACE request = {surface->w, surface->h, surface->pitch, 0, NULL};    REP_HWSURFACE reply = {0, 0, NULL};#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)    if (mgIsServer)        FB_RequestHWSurface (this, &request, &reply);    else {        REQUEST req;        req.id = REQID_HWSURFACE;        req.data = &request;        req.len_data = sizeof (REQ_HWSURFACE);        cli_request (&req, &reply, sizeof (REP_HWSURFACE));    }#else    FB_RequestHWSurface (this, &request, &reply);#endif    if (reply.bucket == NULL)        return -1;    surface->flags |= GAL_HWSURFACE;    surface->pitch = reply.pitch;    surface->pixels = mapped_mem + reply.offset;    surface->hwdata = (struct private_hwdata *)reply.bucket;    return 0;}static void FB_FreeHWSurface(_THIS, GAL_Surface *surface){    REQ_HWSURFACE request = {surface->w, surface->h, surface->pitch, 0, surface->hwdata};    REP_HWSURFACE reply = {0, 0};    request.offset = (char*)surface->pixels - (char*)mapped_mem;#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)    if (mgIsServer)        FB_RequestHWSurface (this, &request, &reply);    else {        REQUEST req;        if (surface->hwdata == NULL) {            surface->pixels = NULL;            return;        }        request.bucket = surface->hwdata;        req.id = REQID_HWSURFACE;        req.data = &request;        req.len_data = sizeof (REQ_HWSURFACE);        cli_request (&req, &reply, sizeof (REP_HWSURFACE));    }#else    FB_RequestHWSurface (this, &request, &reply);#endif    surface->pixels = NULL;    surface->hwdata = NULL;}static void FB_WaitVBL(_THIS){#ifdef FBIOWAITRETRACE /* Heheh, this didn't make it into the main kernel */    ioctl(console_fd, FBIOWAITRETRACE, 0);#endif    return;}static void FB_WaitIdle(_THIS){    return;}#ifdef VGA16_FBCON_SUPPORT/* Code adapted with thanks from the XFree86 VGA16 driver! :) */#define writeGr(index, value)   \outb(index, 0x3CE);             \outb(value, 0x3CF);#define writeSeq(index, value)  \outb(index, 0x3C4);             \outb(value, 0x3C5);static void FB_VGA16Update(_THIS, int numrects, GAL_Rect *rects){    GAL_Surface *screen;    int width, height, FBPitch, left, i, j, SRCPitch, phase;    register Uint32 m;    Uint8  s1, s2, s3, s4;    Uint32 *src, *srcPtr;    Uint8  *dst, *dstPtr;    screen = this->screen;    FBPitch = screen->w >> 3;    SRCPitch = screen->pitch >> 2;    writeGr(0x03, 0x00);    writeGr(0x05, 0x00);    writeGr(0x01, 0x00);    writeGr(0x08, 0xFF);    while(numrects--) {    left = rects->x & ~7;        width = (rects->w + 7) >> 3;        height = rects->h;        src = (Uint32*)screen->pixels + (rects->y * SRCPitch) + (left >> 2);         dst = (Uint8*)mapped_mem + (rects->y * FBPitch) + (left >> 3);    if((phase = (long)dst & 3L)) {        phase = 4 - phase;        if(phase > width) phase = width;        width -= phase;    }        while(height--) {        writeSeq(0x02, 1 << 0);        dstPtr = dst;        srcPtr = src;        i = width;        j = phase;        while(j--) {        m = (srcPtr[1] & 0x01010101) | ((srcPtr[0] & 0x01010101) << 4);         *dstPtr++ = (m >> 24) | (m >> 15) | (m >> 6) | (m << 3);        srcPtr += 2;        }        while(i >= 4) {        m = (srcPtr[1] & 0x01010101) | ((srcPtr[0] & 0x01010101) << 4);         s1 = (m >> 24) | (m >> 15) | (m >> 6) | (m << 3);        m = (srcPtr[3] & 0x01010101) | ((srcPtr[2] & 0x01010101) << 4);         s2 = (m >> 24) | (m >> 15) | (m >> 6) | (m << 3);        m = (srcPtr[5] & 0x01010101) | ((srcPtr[4] & 0x01010101) << 4);         s3 = (m >> 24) | (m >> 15) | (m >> 6) | (m << 3);        m = (srcPtr[7] & 0x01010101) | ((srcPtr[6] & 0x01010101) << 4);         s4 = (m >> 24) | (m >> 15) | (m >> 6) | (m << 3);        *((Uint32*)dstPtr) = s1 | (s2 << 8) | (s3 << 16) | (s4 << 24);        srcPtr += 8;        dstPtr += 4;        i -= 4;        }        while(i--) {        m = (srcPtr[1] & 0x01010101) | ((srcPtr[0] & 0x01010101) << 4);         *dstPtr++ = (m >> 24) | (m >> 15) | (m >> 6) | (m << 3);        srcPtr += 2;        }        writeSeq(0x02, 1 << 1);        dstPtr = dst;        srcPtr = src;        i = width;        j = phase;        while(j--) {        m = (srcPtr[1] & 0x02020202) | ((srcPtr[0] & 0x02020202) << 4);         *dstPtr++ = (m >> 25) | (m >> 16) | (m >> 7) | (m << 2);        srcPtr += 2;        }        while(i >= 4) {        m = (srcPtr[1] & 0x02020202) | ((srcPtr[0] & 0x02020202) << 4);         s1 = (m >> 25) | (m >> 16) | (m >> 7) | (m << 2);        m = (srcPtr[3] & 0x02020202) | ((srcPtr[2] & 0x02020202) << 4);         s2 = (m >> 25) | (m >> 16) | (m >> 7) | (m << 2);        m = (srcPtr[5] & 0x02020202) | ((srcPtr[4] & 0x02020202) << 4);         s3 = (m >> 25) | (m >> 16) | (m >> 7) | (m << 2);        m = (srcPtr[7] & 0x02020202) | ((srcPtr[6] & 0x02020202) << 4);         s4 = (m >> 25) | (m >> 16) | (m >> 7) | (m << 2);        *((Uint32*)dstPtr) = s1 | (s2 << 8) | (s3 << 16) | (s4 << 24);        srcPtr += 8;        dstPtr += 4;        i -= 4;        }        while(i--) {        m = (srcPtr[1] & 0x02020202) | ((srcPtr[0] & 0x02020202) << 4);         *dstPtr++ = (m >> 25) | (m >> 16) | (m >> 7) | (m << 2);        srcPtr += 2;        }        writeSeq(0x02, 1 << 2);        dstPtr = dst;        srcPtr = src;        i = width;        j = phase;        while(j--) {        m = (srcPtr[1] & 0x04040404) | ((srcPtr[0] & 0x04040404) << 4);         *dstPtr++ = (m >> 26) | (m >> 17) | (m >> 8) | (m << 1);        srcPtr += 2;        }        while(i >= 4) {        m = (srcPtr[1] & 0x04040404) | ((srcPtr[0] & 0x04040404) << 4);         s1 = (m >> 26) | (m >> 17) | (m >> 8) | (m << 1);        m = (srcPtr[3] & 0x04040404) | ((srcPtr[2] & 0x04040404) << 4);         s2 = (m >> 26) | (m >> 17) | (m >> 8) | (m << 1);        m = (srcPtr[5] & 0x04040404) | ((srcPtr[4] & 0x04040404) << 4);         s3 = (m >> 26) | (m >> 17) | (m >> 8) | (m << 1);        m = (srcPtr[7] & 0x04040404) | ((srcPtr[6] & 0x04040404) << 4);         s4 = (m >> 26) | (m >> 17) | (m >> 8) | (m << 1);        *((Uint32*)dstPtr) = s1 | (s2 << 8) | (s3 << 16) | (s4 << 24);        srcPtr += 8;        dstPtr += 4;        i -= 4;        }        while(i--) {        m = (srcPtr[1] & 0x04040404) | ((srcPtr[0] & 0x04040404) << 4);         *dstPtr++ = (m >> 26) | (m >> 17) | (m >> 8) | (m << 1);        srcPtr += 2;        }                writeSeq(0x02, 1 << 3);        dstPtr = dst;        srcPtr = src;        i = width;        j = phase;        while(j--) {        m = (srcPtr[1] & 0x08080808) | ((srcPtr[0] & 0x08080808) << 4);         *dstPtr++ = (m >> 27) | (m >> 18) | (m >> 9) | m;        srcPtr += 2;        }        while(i >= 4) {        m = (srcPtr[1] & 0x08080808) | ((srcPtr[0] & 0x08080808) << 4);         s1 = (m >> 27) | (m >> 18) | (m >> 9) | m;        m = (srcPtr[3] & 0x08080808) | ((srcPtr[2] & 0x08080808) << 4);         s2 = (m >> 27) | (m >> 18) | (m >> 9) | m;        m = (srcPtr[5] & 0x08080808) | ((srcPtr[4] & 0x08080808) << 4);         s3 = (m >> 27) | (m >> 18) | (m >> 9) | m;        m = (srcPtr[7] & 0x08080808) | ((srcPtr[6] & 0x08080808) << 4);         s4 = (m >> 27) | (m >> 18) | (m >> 9) | m;        *((Uint32*)dstPtr) = s1 | (s2 << 8) | (s3 << 16) | (s4 << 24);        srcPtr += 8;        dstPtr += 4;        i -= 4;        }        while(i--) {        m = (srcPtr[1] & 0x08080808) | ((srcPtr[0] & 0x08080808) << 4);         *dstPtr++ = (m >> 27) | (m >> 18) | (m >> 9) | m;        srcPtr += 2;        }            dst += FBPitch;            src += SRCPitch;        }        rects++;    }}#endif /* VGA16_FBCON_SUPPORT */void FB_SavePaletteTo(_THIS, int palette_len, __u16 *area){    struct fb_cmap cmap;    cmap.start = 0;    cmap.len = palette_len;    cmap.red = &area[0*palette_len];    cmap.green = &area[1*palette_len];    cmap.blue = &area[2*palette_len];    cmap.transp = NULL;    ioctl(console_fd, FBIOGETCMAP, &cmap);}void FB_RestorePaletteFrom(_THIS, int palette_len, __u16 *area){    struct fb_cmap cmap;    cmap.start = 0;    cmap.len = palette_len;    cmap.red = &area[0*palette_len];    cmap.green = &area[1*palette_len];    cmap.blue = &area[2*palette_len];    cmap.transp = NULL;    ioctl(console_fd, FBIOPUTCMAP, &cmap);}static void FB_SavePalette(_THIS, struct fb_fix_screeninfo *finfo,                                  struct fb_var_screeninfo *vinfo){    int i;    /* Save hardware palette, if needed */    if ( finfo->visual == FB_VISUAL_PSEUDOCOLOR ) {        saved_cmaplen = 1<<vinfo->bits_per_pixel;        saved_cmap=(__u16 *)malloc(3*saved_cmaplen*sizeof(*saved_cmap));        if ( saved_cmap != NULL ) {            FB_SavePaletteTo(this, saved_cmaplen, saved_cmap);        }    }    /* Added support for FB_VISUAL_DIRECTCOLOR.       With this mode pixel information is passed through the palette...       Neat fading and gamma correction effects can be had by simply       fooling around with the palette instead of changing the pixel       values themselves... Very neat!       Adam Meyerowitz 1/19/2000       ameyerow@optonline.com    */    if ( finfo->visual == FB_VISUAL_DIRECTCOLOR ) {        __u16 new_entries[3*256];        /* Save the colormap */        saved_cmaplen = 256;        saved_cmap=(__u16 *)malloc(3*saved_cmaplen*sizeof(*saved_cmap));        if ( saved_cmap != NULL ) {            FB_SavePaletteTo(this, saved_cmaplen, saved_cmap);        }        /* Allocate new identity colormap */        for ( i=0; i<256; ++i ) {                  new_entries[(0*256)+i] =            new_entries[(1*256)+i] =            new_entries[(2*256)+i] = (i<<8)|i;        }        FB_RestorePaletteFrom(this, 256, new_entries);    }}static void FB_RestorePalette(_THIS){    /* Restore the original palette */    if ( saved_cmap ) {        FB_RestorePaletteFrom(this, saved_cmaplen, saved_cmap);        free(saved_cmap);        saved_cmap = NULL;    }}static int FB_SetColors(_THIS, int firstcolor, int ncolors, GAL_Color *colors){    int i;    __u16 r[256];    __u16 g[256];    __u16 b[256];    struct fb_cmap cmap;    /* Set up the colormap */    for (i = 0; i < ncolors; i++) {        r[i] = colors[i].r << 8;        g[i] = colors[i].g << 8;        b[i] = colors[i].b << 8;    }    cmap.start = firstcolor;    cmap.len = ncolors;    cmap.red = r;    cmap.green = g;    cmap.blue = b;    cmap.transp = NULL;    if( (ioctl(console_fd, FBIOPUTCMAP, &cmap) < 0) ||            !(this->screen->flags & GAL_HWPALETTE) ) {        colors = this->screen->format->palette->colors;        ncolors = this->screen->format->palette->ncolors;        cmap.start = 0;        cmap.len = ncolors;        memset(r, 0, sizeof(r));        memset(g, 0, sizeof(g));        memset(b, 0, sizeof(b));        if ( ioctl(console_fd, FBIOGETCMAP, &cmap) == 0 ) {            for ( i=ncolors-1; i>=0; --i ) {                colors[i].r = (r[i]>>8);                colors[i].g = (g[i]>>8);                colors[i].b = (b[i]>>8);            }        }        return(0);    }    return(1);}/* Note:  If we are terminated, this could be called in the middle of   another SDL video routine -- notably UpdateRects.*/static void FB_VideoQuit(_THIS){#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)    if ( mgIsServer && this->screen ) {#else    if ( this->screen ) {#endif        /* Clear screen and tell SDL not to free the pixels */        if ( this->screen->pixels ) {#ifdef __powerpc__    /* SIGBUS when using memset() ?? */            Uint8 *rowp = (Uint8 *)this->screen->pixels;            int left = this->screen->pitch*this->screen->h;            while ( left-- ) { *rowp++ = 0; }#else            memset(this->screen->pixels,0,this->screen->h*this->screen->pitch);#endif        }        /* This test fails when using the VGA16 shadow memory */        if ( ((char *)this->screen->pixels >= mapped_mem) &&             ((char *)this->screen->pixels < (mapped_mem+mapped_memlen)) ) {            this->screen->pixels = NULL;        }    }    /* Clean up the memory bucket list */#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)    if (mgIsServer)#endif    {        FB_FreeHWSurfaces(this);    }    /* Close console and input file descriptors */    if ( console_fd > 0 ) {        /* Unmap the video framebuffer and I/O registers */        if ( mapped_mem ) {            munmap(mapped_mem, mapped_memlen);            mapped_mem = NULL;        }        if ( mapped_io ) {            munmap(mapped_io, mapped_iolen);            mapped_io = NULL;        }#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)        if (mgIsServer)#endif        {            /* Restore the original video mode and palette */            if (ttyfd >= 0) {                FB_RestorePalette(this);                ioctl(console_fd, FBIOPUT_VSCREENINFO, &saved_vinfo);            }            FB_LeaveGraphicsMode (this);        }        /* We're all done with the framebuffer */        close(console_fd);        console_fd = -1;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩蜜臀av国产精品网站| 国产伦理精品不卡| 亚洲国产成人午夜在线一区| 日韩一区二区在线看| 欧美日韩大陆一区二区| 欧美性猛交xxxxxx富婆| 欧洲另类一二三四区| 国产91丝袜在线观看| 国产一区二区三区在线观看免费| 免费高清不卡av| 青草av.久久免费一区| 日韩av一级电影| 免费在线观看一区| 男男视频亚洲欧美| 久久99精品久久久久婷婷| 精品制服美女丁香| 国产成人亚洲精品狼色在线| 高清不卡在线观看av| 一本色道亚洲精品aⅴ| 欧美亚洲动漫另类| 日韩一区二区免费高清| 久久亚洲精品国产精品紫薇| 日本一区二区三区久久久久久久久不 | 另类人妖一区二区av| 蜜桃精品视频在线| 成人一区二区三区中文字幕| 一本大道av一区二区在线播放| 欧亚洲嫩模精品一区三区| 欧美精选一区二区| 国产三区在线成人av| 亚洲乱码国产乱码精品精小说| 一区二区三区小说| 精品一区二区免费视频| 成人午夜又粗又硬又大| 色偷偷成人一区二区三区91 | 狠狠色狠狠色综合系列| 国产成a人亚洲精品| 在线观看免费亚洲| 欧美xfplay| 国产精品久久夜| 一区二区三区中文在线观看| 日本不卡一区二区三区高清视频| 国产精品一二三区| 在线日韩av片| 久久久久国色av免费看影院| 一区二区视频在线| 免费亚洲电影在线| 成人av资源在线观看| 日韩欧美国产一二三区| 国产精品水嫩水嫩| 日日噜噜夜夜狠狠视频欧美人| 美女一区二区三区| 色哟哟一区二区在线观看| 欧美一激情一区二区三区| 国产精品久久久久婷婷二区次| 亚洲成人av电影| 欧洲另类一二三四区| 精品国免费一区二区三区| **性色生活片久久毛片| 日本中文字幕一区二区有限公司| av一区二区三区四区| 精品久久久久av影院| 亚洲国产成人porn| 99精品视频在线播放观看| 26uuu精品一区二区| 日韩精品色哟哟| 色婷婷综合久久久久中文一区二区| 精品噜噜噜噜久久久久久久久试看 | 国产欧美精品一区二区色综合朱莉| 亚洲国产精品久久一线不卡| 成人av网站在线| 久久综合久久鬼色| 日日夜夜免费精品| 欧美亚男人的天堂| 亚洲男同性恋视频| 99精品久久99久久久久| 欧美韩日一区二区三区| 国产东北露脸精品视频| 久久久美女毛片| 久久超级碰视频| 91精品国产全国免费观看| 五月天激情综合| 欧美日韩免费不卡视频一区二区三区| 亚洲色欲色欲www在线观看| 成人免费毛片嘿嘿连载视频| 国产欧美一二三区| 成人在线视频一区| 国产精品美女www爽爽爽| 粉嫩高潮美女一区二区三区| 国产午夜精品在线观看| 国产成人精品aa毛片| 国产日韩欧美在线一区| 国产精品白丝jk白祙喷水网站| 欧美精品一区二区三区四区| 国产精品69毛片高清亚洲| 久久亚区不卡日本| 丁香婷婷综合色啪| 日韩理论片一区二区| 日本道色综合久久| 亚洲成av人片| 日韩午夜av电影| 国产伦精一区二区三区| 国产精品美女视频| 色美美综合视频| 三级不卡在线观看| 欧美成人猛片aaaaaaa| 大白屁股一区二区视频| 亚洲区小说区图片区qvod| 欧美日韩一区在线观看| 日韩中文字幕区一区有砖一区 | 夜夜精品浪潮av一区二区三区| 色中色一区二区| 日韩av一级片| 中文字幕av在线一区二区三区| 99久久精品国产网站| 亚洲成人av电影在线| 日韩女优视频免费观看| 国产精品一区免费在线观看| 亚洲精品成人a在线观看| 欧美精品xxxxbbbb| 精品一区二区免费视频| 久久久久国产一区二区三区四区| 成人avav在线| 亚洲成人免费在线观看| 久久综合狠狠综合久久综合88| av不卡一区二区三区| 偷拍亚洲欧洲综合| 久久久久久9999| 欧美疯狂性受xxxxx喷水图片| 国产精品亚洲视频| 视频一区在线视频| 亚洲视频在线观看三级| 精品国产乱码久久久久久浪潮 | 久久精品国内一区二区三区| 综合激情成人伊人| 精品动漫一区二区三区在线观看| 91丨九色丨黑人外教| 精品影视av免费| 亚洲在线视频免费观看| 久久久久9999亚洲精品| 欧美精选一区二区| 色域天天综合网| 成人国产精品视频| 国产曰批免费观看久久久| 三级欧美在线一区| 一区二区三区四区在线| 中文字幕佐山爱一区二区免费| 精品蜜桃在线看| 3751色影院一区二区三区| 91丨九色丨蝌蚪丨老版| 丰满亚洲少妇av| 国产一区二区三区四区在线观看 | 在线观看91视频| 成人免费毛片片v| 韩日av一区二区| 毛片基地黄久久久久久天堂| 亚洲综合男人的天堂| 国产精品毛片久久久久久久| 国产午夜精品理论片a级大结局 | 亚洲精品日产精品乱码不卡| 久久久久久久精| 欧美xfplay| 91精品一区二区三区在线观看| 欧美性大战xxxxx久久久| 91丨九色丨黑人外教| www.亚洲在线| av中文字幕一区| 成人永久免费视频| 成人av电影免费在线播放| 成人污污视频在线观看| 高清成人免费视频| 成人h动漫精品| 91亚洲男人天堂| 色婷婷综合久色| 色婷婷精品久久二区二区蜜臀av| 91在线国产观看| 色婷婷av一区| 欧美高清hd18日本| 日韩免费视频线观看| 久久人人97超碰com| 中文一区一区三区高中清不卡| 国产三级精品三级| 亚洲欧美综合网| 亚洲色大成网站www久久九九| 亚洲人成网站在线| 同产精品九九九| 狠狠色狠狠色综合日日91app| 国产传媒久久文化传媒| 成人免费观看视频| 色网综合在线观看| 欧美一级片在线观看| 久久久亚洲精品石原莉奈| 国产精品色婷婷久久58| 亚洲最新在线观看| 蜜桃久久精品一区二区| 成人黄色大片在线观看| 欧美三级电影在线看| 欧美本精品男人aⅴ天堂| 中文字幕一区二区三区不卡在线| 亚洲码国产岛国毛片在线|