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

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

?? cirrus_vga_rop2.h

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? H
字號:
/* * QEMU Cirrus CLGD 54xx VGA Emulator. * * Copyright (c) 2004 Fabrice Bellard * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */#if DEPTH == 8#define PUTPIXEL()    ROP_OP(d[0], col)#elif DEPTH == 16#define PUTPIXEL()    ROP_OP(((uint16_t *)d)[0], col);#elif DEPTH == 24#define PUTPIXEL()    ROP_OP(d[0], col); \                      ROP_OP(d[1], (col >> 8)); \                      ROP_OP(d[2], (col >> 16))#elif DEPTH == 32#define PUTPIXEL()    ROP_OP(((uint32_t *)d)[0], col)#else#error unsupported DEPTH#endifstatic voidglue(glue(glue(cirrus_patternfill_, ROP_NAME), _),DEPTH)     (CirrusVGAState * s, uint8_t * dst,      const uint8_t * src,      int dstpitch, int srcpitch,      int bltwidth, int bltheight){    uint8_t *d;    int x, y, pattern_y, pattern_pitch, pattern_x;    unsigned int col;    const uint8_t *src1;#if DEPTH == 24    int skipleft = s->gr[0x2f] & 0x1f;#else    int skipleft = (s->gr[0x2f] & 0x07) * (DEPTH / 8);#endif#if DEPTH == 8    pattern_pitch = 8;#elif DEPTH == 16    pattern_pitch = 16;#else    pattern_pitch = 32;#endif    pattern_y = s->cirrus_blt_srcaddr & 7;    for(y = 0; y < bltheight; y++) {        pattern_x = skipleft;        d = dst + skipleft;        src1 = src + pattern_y * pattern_pitch;        for (x = skipleft; x < bltwidth; x += (DEPTH / 8)) {#if DEPTH == 8            col = src1[pattern_x];            pattern_x = (pattern_x + 1) & 7;#elif DEPTH == 16            col = ((uint16_t *)(src1 + pattern_x))[0];            pattern_x = (pattern_x + 2) & 15;#elif DEPTH == 24            {                const uint8_t *src2 = src1 + pattern_x * 3;                col = src2[0] | (src2[1] << 8) | (src2[2] << 16);                pattern_x = (pattern_x + 1) & 7;            }#else            col = ((uint32_t *)(src1 + pattern_x))[0];            pattern_x = (pattern_x + 4) & 31;#endif            PUTPIXEL();            d += (DEPTH / 8);        }        pattern_y = (pattern_y + 1) & 7;        dst += dstpitch;    }}/* NOTE: srcpitch is ignored */static voidglue(glue(glue(cirrus_colorexpand_transp_, ROP_NAME), _),DEPTH)     (CirrusVGAState * s, uint8_t * dst,      const uint8_t * src,      int dstpitch, int srcpitch,      int bltwidth, int bltheight){    uint8_t *d;    int x, y;    unsigned bits, bits_xor;    unsigned int col;    unsigned bitmask;    unsigned index;#if DEPTH == 24    int dstskipleft = s->gr[0x2f] & 0x1f;    int srcskipleft = dstskipleft / 3;#else    int srcskipleft = s->gr[0x2f] & 0x07;    int dstskipleft = srcskipleft * (DEPTH / 8);#endif    if (s->cirrus_blt_modeext & CIRRUS_BLTMODEEXT_COLOREXPINV) {        bits_xor = 0xff;        col = s->cirrus_blt_bgcol;    } else {        bits_xor = 0x00;        col = s->cirrus_blt_fgcol;    }    for(y = 0; y < bltheight; y++) {        bitmask = 0x80 >> srcskipleft;        bits = *src++ ^ bits_xor;        d = dst + dstskipleft;        for (x = dstskipleft; x < bltwidth; x += (DEPTH / 8)) {            if ((bitmask & 0xff) == 0) {                bitmask = 0x80;                bits = *src++ ^ bits_xor;            }            index = (bits & bitmask);            if (index) {                PUTPIXEL();            }            d += (DEPTH / 8);            bitmask >>= 1;        }        dst += dstpitch;    }}static voidglue(glue(glue(cirrus_colorexpand_, ROP_NAME), _),DEPTH)     (CirrusVGAState * s, uint8_t * dst,      const uint8_t * src,      int dstpitch, int srcpitch,      int bltwidth, int bltheight){    uint32_t colors[2];    uint8_t *d;    int x, y;    unsigned bits;    unsigned int col;    unsigned bitmask;    int srcskipleft = s->gr[0x2f] & 0x07;    int dstskipleft = srcskipleft * (DEPTH / 8);    colors[0] = s->cirrus_blt_bgcol;    colors[1] = s->cirrus_blt_fgcol;    for(y = 0; y < bltheight; y++) {        bitmask = 0x80 >> srcskipleft;        bits = *src++;        d = dst + dstskipleft;        for (x = dstskipleft; x < bltwidth; x += (DEPTH / 8)) {            if ((bitmask & 0xff) == 0) {                bitmask = 0x80;                bits = *src++;            }            col = colors[!!(bits & bitmask)];            PUTPIXEL();            d += (DEPTH / 8);            bitmask >>= 1;        }        dst += dstpitch;    }}static voidglue(glue(glue(cirrus_colorexpand_pattern_transp_, ROP_NAME), _),DEPTH)     (CirrusVGAState * s, uint8_t * dst,      const uint8_t * src,      int dstpitch, int srcpitch,      int bltwidth, int bltheight){    uint8_t *d;    int x, y, bitpos, pattern_y;    unsigned int bits, bits_xor;    unsigned int col;#if DEPTH == 24    int dstskipleft = s->gr[0x2f] & 0x1f;    int srcskipleft = dstskipleft / 3;#else    int srcskipleft = s->gr[0x2f] & 0x07;    int dstskipleft = srcskipleft * (DEPTH / 8);#endif    if (s->cirrus_blt_modeext & CIRRUS_BLTMODEEXT_COLOREXPINV) {        bits_xor = 0xff;        col = s->cirrus_blt_bgcol;    } else {        bits_xor = 0x00;        col = s->cirrus_blt_fgcol;    }    pattern_y = s->cirrus_blt_srcaddr & 7;    for(y = 0; y < bltheight; y++) {        bits = src[pattern_y] ^ bits_xor;        bitpos = 7 - srcskipleft;        d = dst + dstskipleft;        for (x = dstskipleft; x < bltwidth; x += (DEPTH / 8)) {            if ((bits >> bitpos) & 1) {                PUTPIXEL();            }            d += (DEPTH / 8);            bitpos = (bitpos - 1) & 7;        }        pattern_y = (pattern_y + 1) & 7;        dst += dstpitch;    }}static voidglue(glue(glue(cirrus_colorexpand_pattern_, ROP_NAME), _),DEPTH)     (CirrusVGAState * s, uint8_t * dst,      const uint8_t * src,      int dstpitch, int srcpitch,      int bltwidth, int bltheight){    uint32_t colors[2];    uint8_t *d;    int x, y, bitpos, pattern_y;    unsigned int bits;    unsigned int col;    int srcskipleft = s->gr[0x2f] & 0x07;    int dstskipleft = srcskipleft * (DEPTH / 8);    colors[0] = s->cirrus_blt_bgcol;    colors[1] = s->cirrus_blt_fgcol;    pattern_y = s->cirrus_blt_srcaddr & 7;    for(y = 0; y < bltheight; y++) {        bits = src[pattern_y];        bitpos = 7 - srcskipleft;        d = dst + dstskipleft;        for (x = dstskipleft; x < bltwidth; x += (DEPTH / 8)) {            col = colors[(bits >> bitpos) & 1];            PUTPIXEL();            d += (DEPTH / 8);            bitpos = (bitpos - 1) & 7;        }        pattern_y = (pattern_y + 1) & 7;        dst += dstpitch;    }}static voidglue(glue(glue(cirrus_fill_, ROP_NAME), _),DEPTH)     (CirrusVGAState *s,      uint8_t *dst, int dst_pitch,      int width, int height){    uint8_t *d, *d1;    uint32_t col;    int x, y;    col = s->cirrus_blt_fgcol;    d1 = dst;    for(y = 0; y < height; y++) {        d = d1;        for(x = 0; x < width; x += (DEPTH / 8)) {            PUTPIXEL();            d += (DEPTH / 8);        }        d1 += dst_pitch;    }}#undef DEPTH#undef PUTPIXEL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线一区| 欧美精品国产精品| 日韩欧美一二三| aaa亚洲精品| 欧美一区二区三区电影| 日韩一区在线看| 久久99精品国产.久久久久| 欧美伦理电影网| 韩国三级中文字幕hd久久精品| 午夜视频一区在线观看| 国产伦精品一区二区三区视频青涩 | 国产麻豆一精品一av一免费| 欧美亚洲国产怡红院影院| 337p日本欧洲亚洲大胆精品| 亚洲线精品一区二区三区| 成人av在线播放网站| 久久美女艺术照精彩视频福利播放| 亚洲国产精品自拍| 91免费小视频| 亚洲六月丁香色婷婷综合久久 | 亚洲第一会所有码转帖| 粉嫩嫩av羞羞动漫久久久| 欧美一区二区视频观看视频| 一区二区在线观看免费| 成人黄色在线视频| 国产欧美精品一区aⅴ影院| 久久精品国产亚洲高清剧情介绍| 欧美在线播放高清精品| 亚洲激情欧美激情| 色国产精品一区在线观看| 国产精品不卡在线观看| 成人免费av资源| 国产精品高潮呻吟| 99精品1区2区| 亚洲一级电影视频| 欧美亚洲自拍偷拍| 天堂影院一区二区| 欧美一级高清片| 久久成人羞羞网站| 亚洲精品一线二线三线| 国产一区二区毛片| 国产精品色噜噜| 91片黄在线观看| 亚洲成av人片在线| 日韩欧美在线影院| 国产精品亚洲第一| 亚洲动漫第一页| 欧美日韩一本到| 奇米777欧美一区二区| 日韩精品专区在线影院观看| 国产精品中文有码| 亚洲免费高清视频在线| 欧美色手机在线观看| 国产宾馆实践打屁股91| 精品在线视频一区| 丰满岳乱妇一区二区三区| 波波电影院一区二区三区| 蜜乳av一区二区三区| 日韩免费电影网站| 国产99久久久国产精品潘金| 亚洲精品乱码久久久久久久久 | www.欧美精品一二区| 夜夜揉揉日日人人青青一国产精品| 奇米四色…亚洲| 精品盗摄一区二区三区| 国产精品一区二区三区乱码| 国产精品理论片| 色天使色偷偷av一区二区| 国产精品乡下勾搭老头1| 免费成人在线网站| 色综合 综合色| 国产成人精品亚洲777人妖 | 日韩午夜精品视频| 成人美女在线观看| 亚洲一区二区三区美女| 精品国产区一区| av一区二区三区黑人| 亚洲欧美国产三级| 欧美一级片免费看| 美脚の诱脚舐め脚责91| 亚洲人吸女人奶水| 欧美mv日韩mv| 色悠久久久久综合欧美99| 日韩成人免费电影| 国产精品毛片久久久久久久| 欧美日韩一区视频| 国产精品一级在线| 亚洲成av人综合在线观看| 久久久久久久网| 欧美日韩日本视频| gogo大胆日本视频一区| 亚洲成a人片综合在线| 亚洲国产精品t66y| 91精品在线免费观看| 不卡一区二区三区四区| 秋霞国产午夜精品免费视频| 国产精品女上位| 26uuu精品一区二区在线观看| 色菇凉天天综合网| 波多野结衣视频一区| 国内成人精品2018免费看| 亚洲黄网站在线观看| 中文字幕久久午夜不卡| 欧美mv和日韩mv国产网站| 欧美亚洲自拍偷拍| eeuss鲁一区二区三区| 久久9热精品视频| 亚洲一区二区三区在线看| 中文字幕精品一区二区精品绿巨人| 这里只有精品免费| 在线视频综合导航| 99精品欧美一区| 国v精品久久久网| 国产伦精品一区二区三区免费迷 | 国产一区二区三区蝌蚪| 亚洲图片欧美综合| 蜜桃久久久久久久| 久久综合资源网| 91丨porny丨在线| 国产日产欧美一区| 日韩一级欧美一级| 欧美色爱综合网| 欧美在线一二三| 一本一道久久a久久精品综合蜜臀| 国产在线精品视频| 久久疯狂做爰流白浆xx| 亚洲不卡一区二区三区| 日韩不卡在线观看日韩不卡视频| 亚洲最新视频在线观看| 中文字幕佐山爱一区二区免费| 国产日韩精品一区二区浪潮av| 精品少妇一区二区| 久久精品一区四区| 欧美极品美女视频| 亚洲色图欧洲色图| 一色屋精品亚洲香蕉网站| 亚洲视频一区二区免费在线观看| 国产精品素人一区二区| 欧美国产禁国产网站cc| 18成人在线视频| 一区二区三区视频在线看| 亚洲高清一区二区三区| 日本不卡视频一二三区| 国产综合一区二区| 顶级嫩模精品视频在线看| av亚洲精华国产精华精华| 91麻豆国产香蕉久久精品| 欧美日韩中字一区| 精品免费一区二区三区| 欧美国产精品一区二区| 亚洲精品免费看| 日本不卡视频在线| 成人精品国产福利| 日韩一级成人av| 国产日韩av一区二区| 亚洲欧美激情小说另类| 日韩黄色小视频| 国产一区欧美日韩| 色综合久久精品| gogogo免费视频观看亚洲一| 日韩午夜在线观看| 综合激情成人伊人| 蜜臀av国产精品久久久久| 国产黄人亚洲片| 欧美日韩激情一区二区| 国产三级精品三级在线专区| 亚洲精品亚洲人成人网| 久久精品国产久精国产| 色综合av在线| 久久奇米777| 亚洲成av人影院在线观看网| 捆绑变态av一区二区三区| 欧美最猛性xxxxx直播| 久久蜜桃av一区精品变态类天堂| 亚洲精品视频在线看| 国产乱一区二区| 4438成人网| 中文幕一区二区三区久久蜜桃| 激情综合网最新| 日本久久电影网| 国产欧美日韩在线视频| 一区二区高清视频在线观看| 激情综合色丁香一区二区| 日本韩国精品在线| 亚洲日本免费电影| 丁香激情综合国产| 91麻豆精品91久久久久久清纯| 亚洲私人影院在线观看| 国产精品一区在线观看乱码| 日韩欧美中文字幕精品| 亚洲mv大片欧洲mv大片精品| 99久久免费视频.com| 久久精品欧美一区二区三区不卡 | 中文字幕一区二区三| 久久精品国产一区二区三区免费看 | 国产日韩综合av| 精品亚洲成av人在线观看| 欧美麻豆精品久久久久久| 亚洲免费观看高清完整版在线观看 | 国产午夜久久久久|