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

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

?? bitmap-comm.c

?? libminigui-1.3.0.tar.gz。 miniGUI的庫函數源代碼!
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "readbmp.h"// This function expand monochorate bitmap.void GUIAPI ExpandMonoBitmap (HDC hdc, int w, int h, const BYTE* bits, int bits_flow, int pitch,                              BYTE* bitmap, int bg, int fg){    int x, y;    const BYTE* buf;    int b = 0;    int bpp;    bpp = GAL_BytesPerPixel (dc_HDC2PDC(hdc)->gc);    if (bits_flow == MYBMP_FLOW_UP)        buf = bits + pitch * h;    else        buf = bits;    // expand bits here.    for (y = 0; y < h; y++) {        if (bits_flow == MYBMP_FLOW_UP)            buf -= pitch;        bits = buf;        for (x = 0; x < w; x++) {            if (x % 8 == 0)                b = *bits++;            if ((b & (128 >> (x % 8))))   /* pixel */                switch (bpp) {                case 1:                    *bitmap = fg;                    bitmap++;                    break;                case 2:                    *(Uint16 *) bitmap = fg;                    bitmap += 2;                    break;                case 3:                    *(Uint16 *) bitmap = fg;                    *(bitmap + 2) = fg >> 16;                    bitmap += 3;                    break;                case 4:                    *(Uint32 *) bitmap = fg;                    bitmap += 4;                }             else              /* background pixel */                switch (bpp) {                case 1:                    *bitmap = bg;                    bitmap++;                    break;                case 2:                    *(Uint16 *) bitmap = bg;                    bitmap += 2;                    break;                case 3:                    *(Uint16 *) bitmap = bg;                    *(bitmap + 2) = bg;                    bitmap += 3;                    break;                case 4:                    *(Uint32 *) bitmap = bg;                    bitmap += 4;                }        }                if (bits_flow != MYBMP_FLOW_UP)            buf += pitch;    }}static const RGB WindowsStdColor [] = {    {0x00, 0x00, 0x00},     // black         --0    {0x80, 0x00, 0x00},     // dark red      --1    {0x00, 0x80, 0x00},     // dark green    --2    {0x80, 0x80, 0x00},     // dark yellow   --3    {0x00, 0x00, 0x80},     // dark blue     --4    {0x80, 0x00, 0x80},     // dark magenta  --5    {0x00, 0x80, 0x80},     // dark cyan     --6    {0xC0, 0xC0, 0xC0},     // light gray    --7    {0x80, 0x80, 0x80},     // dark gray     --8    {0xFF, 0x00, 0x00},     // red           --9    {0x00, 0xFF, 0x00},     // green         --10    {0xFF, 0xFF, 0x00},     // yellow        --11    {0x00, 0x00, 0xFF},     // blue          --12    {0xFF, 0x00, 0xFF},     // magenta       --13    {0x00, 0xFF, 0xFF},     // cyan          --14    {0xFF, 0xFF, 0xFF},     // light white   --15};// This function expand 16-color bitmap.void GUIAPI Expand16CBitmap (HDC hdc, int w, int h, const BYTE* bits, int bits_flow, int pitch,                            BYTE* bitmap, const RGB* pal){    PDC pdc;    int x, y;    const BYTE* buf;    int b = 0;    int c;    int bpp;    pdc = dc_HDC2PDC(hdc);    bpp = GAL_BytesPerPixel (pdc->gc);    if (bits_flow == MYBMP_FLOW_UP)        buf = bits + pitch * h;    else        buf = bits;    // expand bits here.    for (y = 0; y < h; y++)    {        if (bits_flow == MYBMP_FLOW_UP)            buf -= pitch;        bits = buf;        for (x = 0; x < w; x++) {            if (x % 2 == 0)                b = *bits++;            if (x % 2 == 0)                c = (b >> 4) & 0x0f;            else                c = b & 0x0f;            if (pal)                c = GAL_MapColor (pdc->gc, (GAL_Color*)(pal + c));            else                c = GAL_MapColor (pdc->gc, (GAL_Color*)(WindowsStdColor + c));            switch (bpp) {                case 1:                    *bitmap = c;                    bitmap++;                    break;                case 2:                    *(Uint16 *) bitmap = c;                    bitmap += 2;                    break;                case 3:                    *(Uint16 *) bitmap = c;                    *(bitmap + 2) = c >> 16;                    bitmap += 3;                    break;                case 4:                    *(Uint32 *) bitmap = c;                    bitmap += 4;            }        }        if (bits_flow != MYBMP_FLOW_UP)            buf += pitch;    }}// This function expands 256-color bitmap.void GUIAPI Expand256CBitmap (HDC hdc, int w, int h, const BYTE* bits, int bits_flow, int pitch,                             BYTE* bitmap, const RGB* pal){    PDC pdc;    int x, y;    const BYTE* buf;    int c;    int bpp;    pdc = dc_HDC2PDC (hdc);    bpp = GAL_BytesPerPixel (pdc->gc);    if (bits_flow == MYBMP_FLOW_UP)        buf = bits + pitch * h;    else        buf = bits;    // expand bits here.    for (y = 0; y < h; y++)    {        if (bits_flow == MYBMP_FLOW_UP)            buf -= pitch;        bits = buf;        for (x = 0; x < w; x++) {            c = *bits++;            c = GAL_MapColor (pdc->gc, (GAL_Color*)(pal + c));                        switch (bpp) {                case 1:                    *bitmap = c;                    bitmap++;                    break;                case 2:                    *(Uint16 *) bitmap = c;                    bitmap += 2;                    break;                case 3:                    *(Uint16 *) bitmap = c;                    *(bitmap + 2) = c >> 16;                    bitmap += 3;                    break;                case 4:                    *(Uint32 *) bitmap = c;                    bitmap += 4;            }        }        if (bits_flow != MYBMP_FLOW_UP)            buf += pitch;    }}// This function compile a RGB bitmapvoid GUIAPI CompileRGBBitmap (HDC hdc, int w, int h, const BYTE* bits, int bits_flow, int pitch,                             BYTE* bitmap, int rgb_order){    PDC pdc;    int x, y;    const BYTE* buf;    int c;    GAL_Color rgb;    int bpp;    pdc = dc_HDC2PDC (hdc);    bpp = GAL_BytesPerPixel (pdc->gc);    if (bits_flow == MYBMP_FLOW_UP)        buf = bits + pitch * h;    else        buf = bits;    // expand bits here.    for (y = 0; y < h; y++)    {        if (bits_flow == MYBMP_FLOW_UP)            buf -= pitch;        bits = buf;        for (x = 0; x < w; x++) {            if (rgb_order == MYBMP_TYPE_BGR) {                rgb.b = *bits++;                rgb.g = *bits++;                rgb.r = *bits++;            }            else {                rgb.r = *bits++;                rgb.g = *bits++;                rgb.b = *bits++;            }            c = GAL_MapColor (pdc->gc, &rgb);                        switch (bpp) {                case 1:                    *bitmap = c;                    bitmap++;                    break;                case 2:                    *(Uint16 *) bitmap = c;                    bitmap += 2;                    break;                case 3:                    *(Uint16 *) bitmap = c;                    *(bitmap + 2) = c >> 16;                    bitmap += 3;                    break;                case 4:                    *(Uint32 *) bitmap = c;                    bitmap += 4;            }        }        if (bits_flow != MYBMP_FLOW_UP)            buf += pitch;    }}// This function replaces one color with specified color.void GUIAPI ReplaceBitmapColor (HDC hdc, PBITMAP pBitmap, gal_pixel iOColor, gal_pixel iNColor){    PDC pdc;    int i, size;    BYTE* bitmap;       int bpp;    pdc = dc_HDC2PDC (hdc);    bpp = GAL_BytesPerPixel (pdc->gc);    size = pBitmap->bmPitch * pBitmap->bmHeight;    bitmap = pBitmap->bmBits;    switch (bpp) {        case 1:            for(i=0; i<size; i++) {                if( *bitmap == iOColor)                    *bitmap = iNColor;                bitmap++;            }            break;        case 2:            for(i=0; i<size; i+=2) {                if( *(Uint16 *) bitmap == iOColor)                    *(Uint16 *) bitmap = iNColor;                bitmap += 2;            }            break;        case 3:             for(i=0; i<size; i+=3) {                if( (*(Uint16 *) bitmap == iOColor)                    && (*(bitmap + 2) == (iOColor >> 16)) )                {                    *(Uint16 *) bitmap = iNColor;                    *(bitmap + 2) = iNColor >> 16;                }                bitmap += 3;            }            break;        case 4:                for(i=0; i<size; i+=4) {                if( *(Uint32 *) bitmap == iOColor )                    *(Uint32 *) bitmap = iNColor;                bitmap += 4;            }            break;    }}void GUIAPI DrawHVDotLine (HDC hdc, int x, int y, int w_h, BOOL H_V){    PDC pdc;    BYTE* bitmap, *vbuff;    int i, bpp, size;    if (w_h < 1)        return;    pdc = dc_HDC2PDC (hdc);    bpp = GAL_BytesPerPixel (pdc->gc);    size = w_h * bpp;#ifdef HAVE_ALLOCA    if (!(bitmap = alloca (size)))#else    if (!(bitmap = malloc (size)))#endif        return;    vbuff = bitmap;    switch (bpp) {        case 1:            for (i = 0; i < size; i += 2) {                *vbuff = (BYTE)(pdc->pencolor);                vbuff++;                *vbuff = (BYTE)(pdc->brushcolor);                vbuff++;            }            break;        case 2:            for (i = 0; i < size; i += 4) {                *(Uint16 *) vbuff = (Uint16)(pdc->pencolor);                vbuff += 2;                *(Uint16 *) vbuff = (Uint16)(pdc->brushcolor);                vbuff += 2;            }            break;        case 3:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区中文字幕| 蜜桃免费网站一区二区三区| 97精品久久久久中文字幕 | 欧美一级视频精品观看| 久久精品99国产精品| 久久亚洲一级片| 国产成人精品影院| 亚洲欧洲日本在线| 日本精品视频一区二区三区| 亚洲夂夂婷婷色拍ww47| 制服.丝袜.亚洲.另类.中文| 久久国产精品99精品国产| 久久嫩草精品久久久久| 成人免费视频播放| 夜夜揉揉日日人人青青一国产精品| 欧美日韩在线播放三区四区| 蜜臀av性久久久久蜜臀aⅴ| 久久―日本道色综合久久| 成人午夜电影久久影院| 一区二区三区日韩| 91精品国产综合久久婷婷香蕉| 国产综合久久久久久鬼色 | 日韩黄色在线观看| 久久综合久色欧美综合狠狠| 不卡一区二区在线| 亚洲一二三区不卡| 久久综合久久鬼色| 91网站在线观看视频| 婷婷久久综合九色综合绿巨人 | 视频一区二区中文字幕| 精品国产乱码久久久久久浪潮| 成人自拍视频在线| 亚洲成a人片综合在线| 久久婷婷国产综合国色天香| 91影院在线观看| 日韩1区2区日韩1区2区| 日本一区二区高清| 欧美日韩一本到| 高清成人免费视频| 性做久久久久久免费观看欧美| 久久美女艺术照精彩视频福利播放 | 国产又黄又大久久| 亚洲精品一二三| 精品少妇一区二区三区在线视频| hitomi一区二区三区精品| 日韩高清不卡一区二区三区| 国产视频一区二区在线观看| 欧美三级午夜理伦三级中视频| 国产一区视频在线看| 亚洲一区二区三区爽爽爽爽爽| 久久综合九色综合欧美亚洲| 欧美丝袜丝交足nylons图片| 国产精品99久久久久久久vr | 亚洲欧美韩国综合色| 日韩欧美视频一区| 一本大道av一区二区在线播放| 另类中文字幕网| 亚洲精品高清视频在线观看| 久久综合成人精品亚洲另类欧美 | 久久综合狠狠综合久久综合88| 欧美性淫爽ww久久久久无| 高清不卡一区二区在线| 男人操女人的视频在线观看欧美| 日韩伦理av电影| 久久免费看少妇高潮| 制服.丝袜.亚洲.另类.中文| 色综合久久66| 成人黄色免费短视频| 免费一级片91| 亚洲一卡二卡三卡四卡无卡久久| 日本一区二区三区dvd视频在线| 51精品视频一区二区三区| 色呦呦网站一区| 成人性生交大片| 蓝色福利精品导航| 天天影视色香欲综合网老头| 亚洲精选视频在线| 国产精品传媒入口麻豆| 久久久精品国产免费观看同学| 日韩一区二区三区视频| 欧美日韩国产综合视频在线观看| 99精品热视频| 成人免费视频caoporn| 国产一区激情在线| 美国十次了思思久久精品导航| 亚洲一级在线观看| 洋洋av久久久久久久一区| 中文字幕一区二区三区精华液| 久久久亚洲精华液精华液精华液| 日韩欧美国产一区二区三区| 欧美日本一区二区在线观看| 欧美优质美女网站| 色偷偷88欧美精品久久久| 99在线精品免费| 成人午夜免费电影| 国产91精品露脸国语对白| 国产乱码精品一区二区三| 久国产精品韩国三级视频| 青椒成人免费视频| 日本怡春院一区二区| 亚洲成av人片www| 亚洲国产精品久久久久婷婷884| 一区二区三区日韩在线观看| 夜夜夜精品看看| 亚洲午夜精品17c| 亚洲自拍与偷拍| 亚洲电影在线播放| 午夜视频久久久久久| 亚洲国产视频直播| 亚洲va中文字幕| 婷婷综合在线观看| 奇米一区二区三区| 精品一区二区三区欧美| 精品一区二区三区欧美| 国产精品亚洲午夜一区二区三区| 国产一区二区三区最好精华液| 国产呦萝稀缺另类资源| 国产福利91精品一区| 成人永久免费视频| 99久久精品国产精品久久| 91麻豆视频网站| 欧洲精品中文字幕| 欧美乱妇一区二区三区不卡视频| 91精品一区二区三区在线观看| 日韩一级片网站| 欧美精品一区二区三区视频| 国产亚洲人成网站| 国产精品免费人成网站| 亚洲欧美国产高清| 天堂一区二区在线| 久久99国产精品免费网站| 国产成人在线视频播放| 99久久婷婷国产综合精品| 日本高清不卡在线观看| 欧美美女黄视频| 日韩精品专区在线影院重磅| 久久久精品人体av艺术| 亚洲欧美自拍偷拍色图| 亚洲影院理伦片| 美女国产一区二区| 国产精品99久久久久久久vr| 99视频热这里只有精品免费| 在线观看中文字幕不卡| 欧美一级日韩免费不卡| 国产日韩欧美不卡在线| 亚洲精品你懂的| 日韩一区精品视频| 国产福利一区二区| 91国偷自产一区二区开放时间 | 国产精品久久久久久福利一牛影视| 亚洲老妇xxxxxx| 美女任你摸久久| 成人福利视频在线看| 欧美主播一区二区三区| 日韩欧美国产三级电影视频| 国产精品久久久久影院亚瑟| 亚洲一二三区在线观看| 国产曰批免费观看久久久| 色香蕉成人二区免费| 日韩欧美一卡二卡| 国产精品乱码一区二三区小蝌蚪| 亚洲午夜激情网站| 国产一区中文字幕| 欧美性大战久久久| 久久久精品国产免大香伊| 亚洲乱码国产乱码精品精小说| 美女诱惑一区二区| av高清久久久| 日韩一区二区在线观看视频播放 | 久久久电影一区二区三区| 一级精品视频在线观看宜春院| 久久精品国产在热久久| 99久久久久久99| 日韩欧美国产三级| 亚洲人快播电影网| 久久草av在线| 日本黄色一区二区| 久久九九99视频| 亚洲高清中文字幕| 成人国产亚洲欧美成人综合网 | 日韩视频一区二区| 中文字幕一区二区三区在线不卡| 免费成人在线观看| 91成人免费电影| 国产视频视频一区| 日本麻豆一区二区三区视频| 91在线云播放| 久久天天做天天爱综合色| 亚洲成人黄色小说| av午夜精品一区二区三区| 欧美精品一区二区不卡| 亚洲观看高清完整版在线观看| 成人午夜视频免费看| 欧美v国产在线一区二区三区| 有码一区二区三区| 国产91精品久久久久久久网曝门| 日韩一区二区三区四区五区六区| 亚洲最大成人综合| 成人精品小蝌蚪| 精品国产123|