亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩影院免费视频| 99re成人精品视频| 亚洲蜜臀av乱码久久精品| 久久网站热最新地址| 欧美一区二区视频在线观看| 欧美视频在线不卡| 欧美日韩日日摸| 欧美精品免费视频| 精品国产污网站| 日韩亚洲国产中文字幕欧美| 欧美大尺度电影在线| wwwwxxxxx欧美| 日本一区二区三区国色天香| 国产精品久久网站| 亚洲一区二区三区四区五区黄| 亚洲精品久久久蜜桃| 亚洲成人资源网| 久久99国产精品尤物| 国产成人精品免费在线| 91蜜桃免费观看视频| 欧美日韩黄色影视| 精品成人免费观看| 综合久久给合久久狠狠狠97色 | 蜜臀av性久久久久蜜臀av麻豆| 美女视频黄 久久| 国产成人免费在线观看不卡| 91色九色蝌蚪| 欧美一区二区三区在线| 久久精品一区二区三区不卡 | 国产色91在线| 亚洲自拍偷拍综合| 韩日精品视频一区| 色狠狠色噜噜噜综合网| 精品嫩草影院久久| 一区二区三区欧美久久| 精品一区二区免费看| 99re8在线精品视频免费播放| 91精品国模一区二区三区| 国产日韩高清在线| 亚洲成人综合视频| www.欧美日韩国产在线| 日韩一区二区高清| 一区二区三区蜜桃网| 国产主播一区二区| 欧美美女一区二区在线观看| 国产精品久久久久久久久免费丝袜| 亚洲成人午夜电影| 91影院在线观看| 久久蜜臀中文字幕| 天天操天天干天天综合网| 成人app下载| 久久久久久夜精品精品免费| 日韩二区三区四区| 一本到三区不卡视频| 国产校园另类小说区| 麻豆精品一区二区综合av| 欧美丝袜第三区| 亚洲区小说区图片区qvod| 国产精品99久久久| 欧美电影免费观看高清完整版 | 欧美一区三区四区| 亚洲成人在线免费| 欧美这里有精品| 亚洲乱码中文字幕| eeuss影院一区二区三区| 久久精品人人做人人综合| 久久99精品一区二区三区| 666欧美在线视频| 亚洲成av人片| 777精品伊人久久久久大香线蕉| 亚洲精品国产精华液| 91一区二区三区在线播放| 国产精品白丝在线| 91视频国产资源| 亚洲精品成人少妇| 在线欧美小视频| 亚洲一区二区三区自拍| 欧洲激情一区二区| 亚洲成人综合视频| 日韩欧美中文字幕公布| 久久精品免费观看| 久久婷婷成人综合色| 国产电影精品久久禁18| 国产精品五月天| 一本在线高清不卡dvd| 亚洲一区二区三区视频在线| 欧美精品99久久久**| 毛片av一区二区| 国产欧美日韩不卡| 91亚洲精华国产精华精华液| 一区二区三区四区不卡在线| 欧美日韩中文精品| 久国产精品韩国三级视频| 国产午夜精品一区二区三区嫩草| 国产suv精品一区二区883| 国产精品国模大尺度视频| 欧美日韩国产123区| 激情伊人五月天久久综合| 国产精品人人做人人爽人人添| 日本高清不卡在线观看| 日本欧美一区二区三区乱码| 久久久综合激的五月天| 一本久久精品一区二区| 免费观看成人av| 日韩美女啊v在线免费观看| 91麻豆精品国产91久久久久| 国产一区二区三区综合| 亚洲精品高清视频在线观看| 日韩久久精品一区| 91成人网在线| 国产精品一区二区果冻传媒| 亚洲精品第1页| 久久久久久久久蜜桃| 色久优优欧美色久优优| 国产成人啪午夜精品网站男同| 一区二区三区四区在线免费观看| 欧美成人在线直播| 在线免费精品视频| 成人免费视频视频在线观看免费 | 国产香蕉久久精品综合网| 91豆麻精品91久久久久久| 高清不卡在线观看av| 日韩国产欧美在线播放| 亚洲蜜臀av乱码久久精品蜜桃| 26uuu亚洲综合色| 欧美精品 国产精品| 91玉足脚交白嫩脚丫在线播放| 国产一区二区不卡在线| 石原莉奈在线亚洲二区| 亚洲激情在线播放| 国产精品无码永久免费888| 欧美va在线播放| 91精品国产综合久久精品麻豆| 91视频国产观看| 99久久精品国产麻豆演员表| 国产成人综合精品三级| 老司机精品视频在线| 天天爽夜夜爽夜夜爽精品视频| 亚洲视频一二区| 亚洲欧美视频一区| 国产精品国产自产拍高清av王其| 精品国产99国产精品| 精品国产乱子伦一区| 日韩欧美一级精品久久| 欧美体内she精高潮| 欧美日韩在线亚洲一区蜜芽| 91高清在线观看| 日本精品裸体写真集在线观看 | 国内精品免费**视频| 日韩不卡手机在线v区| 日本午夜一区二区| 日韩精品电影在线观看| 全国精品久久少妇| 毛片av一区二区| 国产又黄又大久久| 国产美女在线精品| 国产91精品一区二区| 成人美女在线视频| 99re8在线精品视频免费播放| 成人午夜伦理影院| 一本一本久久a久久精品综合麻豆| 成人丝袜18视频在线观看| 99久久99久久精品免费看蜜桃| 91欧美激情一区二区三区成人| 91视频com| 91精品国产综合久久香蕉麻豆| 日韩一区二区精品| 国产精品丝袜一区| 一区二区三区欧美在线观看| 亚洲国产成人porn| 韩国理伦片一区二区三区在线播放| 国产一区二区调教| 色婷婷久久久亚洲一区二区三区 | 91精品国产麻豆国产自产在线| 日韩视频在线永久播放| 久久久91精品国产一区二区三区| 日本一区二区免费在线观看视频| 亚洲天天做日日做天天谢日日欢| 午夜伊人狠狠久久| 国产成人99久久亚洲综合精品| 色94色欧美sute亚洲线路一ni | 国产成人一级电影| 在线亚洲+欧美+日本专区| 日韩精品一区二| 亚洲精品五月天| 精品亚洲成a人| 色一情一伦一子一伦一区| 欧美一区二区成人6969| 国产精品理论片在线观看| 亚洲成人av电影| 成人免费高清在线| 欧美一区二区私人影院日本| 亚洲欧美综合网| 激情国产一区二区| 色琪琪一区二区三区亚洲区| 久久综合九色综合97婷婷| 亚洲高清免费一级二级三级| 国产精品99久久不卡二区| 制服丝袜中文字幕亚洲| 自拍偷拍欧美精品|