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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? drawtext.c

?? 這是針對(duì) Linux (i386)平臺(tái)的 minigui 3.6.2 開發(fā)包(MiniGUI-Processes 運(yùn)行模式)。
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/*** $Id: drawtext.c,v 1.36 2004/07/19 07:59:01 snig Exp $** ** drawtext.c: Low level text drawing.** ** Copyright (C) 2003 Feynman Software.** Copyright (C) 1999 ~ 2002 Wei Yongming.**** Current maintainer: Wei Yongming.**** Create date: 2000/06/15*//*** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program 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 General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//*** TODO:*/#include <stdio.h>#include <stdlib.h>#include "common.h"#include "minigui.h"#include "gdi.h"#include "window.h"#include "cliprect.h"#include "gal.h"#include "internals.h"#include "ctrlclass.h"#include "dc.h"#include "drawtext.h"static BYTE* buffer;static size_t buf_size;BOOL InitTextBitmapBuffer (void){    return TRUE;}static BYTE* get_buffer (size_t size){    if (size <= buf_size) return buffer;    buf_size = ((size + 31) >> 5) << 5;#if 0    fprintf (stderr, "buf_size: %d.\n", buf_size);#endif    buffer = realloc (buffer, buf_size);    return buffer;}static void free_buffer (void){    free (buffer);    buffer = NULL;    buf_size = 0;}void TermTextBitmapBuffer (void){    free_buffer ();}void gdi_start_new_line (LOGFONT* log_font){    DEVFONT* sbc_devfont = log_font->sbc_devfont;    DEVFONT* mbc_devfont = log_font->mbc_devfont;    if (mbc_devfont) {        if (mbc_devfont->font_ops->start_str_output)            (*mbc_devfont->font_ops->start_str_output) (log_font, mbc_devfont);    }    if (sbc_devfont->font_ops->start_str_output)            (*sbc_devfont->font_ops->start_str_output) (log_font, sbc_devfont);}inline static int get_light (int fg, int bg){    return bg + (fg - bg) / 4;}inline static int get_medium (int fg, int bg){    return bg + (fg - bg) * 2 / 4;}inline static int get_dark (int fg, int bg){    return bg + (fg - bg) * 3 / 4;}static int expand_char_pixmap (PDC pdc, int w, int h, const BYTE* bits,             BYTE* expanded, BOOL erasebg, int bold, int italic, int cols){    GAL_Color pal [5];    gal_pixel pixel [5];    int i, x, y;    int b = 0;    BYTE* line;    int bpp = GAL_BytesPerPixel (pdc->gc);    int line_bytes = bpp * (w + bold + italic);    GAL_UnmapPixel (pdc->gc, pdc->bkcolor, pal);    GAL_UnmapPixel (pdc->gc, pdc->textcolor, pal + 4);    pal [1].r = get_light  (pal [4].r, pal [0].r);    pal [1].g = get_light  (pal [4].g, pal [0].g);    pal [1].b = get_light  (pal [4].b, pal [0].b);    pal [2].r = get_medium (pal [4].r, pal [0].r);    pal [2].g = get_medium (pal [4].g, pal [0].g);    pal [2].b = get_medium (pal [4].b, pal [0].b);    pal [3].r = get_dark  (pal [4].r, pal [0].r);    pal [3].g = get_dark  (pal [4].g, pal [0].g);    pal [3].b = get_dark  (pal [4].b, pal [0].b);    for (i = 0; i < 5; i++) {        pixel [i] = GAL_MapColor (pdc->gc, pal + i);    }    line = expanded;    switch (bpp) {    case 1:        for (y = 0; y < h; y++) {            expanded = line;            if (erasebg) {                if (italic) x = (h - y) >> 1;                else x = 0;                for (; x < (w + bold + italic); x++) {                    *(expanded + x) = pixel [0];                }            }            if (italic)                expanded += (h - y) >> 1;            for (x = 0; x < w; x++) {                b = *(bits+x);                if (b == 255) b = 4;                else if (b >= 128) b = 3;                else if (b >= 64) b = 2;                else if (b >= 32) b = 1;                else if (b >= 0) b = 0;                if (erasebg || b != 0) {                    *expanded = pixel [b];                    if (bold)                    *(expanded + 1) = pixel [b];                }                expanded++;            }            bits += cols;            line += line_bytes;        }    break;    case 2:        for (y = 0; y < h; y++) {            expanded = line;            if (erasebg) {                if (italic) x = ((h - y) >> 1) << 1;                else x = 0;                for (; x < (w + bold + italic) << 1; x += 2) {                    *(Uint16 *) (expanded + x) = pixel [0];                }            }            if (italic)                expanded += ((h - y) >> 1) << 1;            for (x = 0; x < w; x++) {                b = *(bits+x);                if (b == 255) b = 4;                else if (b >= 128) b = 3;                else if (b >= 64) b = 2;                else if (b >= 32) b = 1;                else if (b >= 0) b = 0;                if (erasebg || b != 0) {                    *(Uint16 *) expanded = pixel [b];                    if (bold)                        *(Uint16 *)(expanded + 2) = pixel [b];                }                expanded += 2;            }            bits += cols;            line += line_bytes;        }    break;    case 3:        for (y = 0; y < h; y++) {            expanded = line;            if (erasebg) {                if (italic) x = ((h - y) >> 1 * 3);                else x = 0;                for (; x < (w + bold + italic) * 3; x += 3) {                    *(Uint16 *) (expanded + x) = pixel [0];                    *(expanded + x + 2) = pixel [0] >> 16;                }            }            if (italic)                expanded += 3 * ((h - y) >> 1);            for (x = 0; x < w; x++) {                b = *(bits+x);                if (b == 255) b = 4;                else if (b >= 128) b = 3;                else if (b >= 64) b = 2;                else if (b >= 32) b = 1;                else if (b >= 0) b = 0;                if (erasebg || b != 0) {                    *(Uint16 *) expanded = pixel[b];                    *(expanded + 2) = pixel[b] >> 16;                    if (bold) {                        *(Uint16 *)(expanded + 3) = pixel[b];                        *(expanded + 5) = pixel[b] >> 16;                    }                }                                expanded += 3;            }            bits += cols;            line += line_bytes;        }    break;    case 4:        for (y = 0; y < h; y++) {            expanded = line;            if (erasebg) {                if (italic) x = ((h - y) >> 1) << 2;                else x = 0;                for (; x < (w + bold + italic) << 2; x += 4) {                    *(Uint32 *) (expanded + x)= pixel [0];                }            }            if (italic)                expanded += ((h - y) >> 1) << 2;            for (x = 0; x < w; x++) {                b = *bits++;                if (b == 255) b = 4;                else if (b >= 128) b = 3;                else if (b >= 64) b = 2;                else if (b >= 32) b = 1;                else if (b >= 0) b = 0;                if (erasebg || b != 0) {                    *(Uint32 *) expanded = pixel[b];                    if (bold)                        *(Uint32 *) (expanded + 4) = pixel[b];                }                expanded += 4;            }            line += line_bytes;        }    }    return line_bytes;}static int expand_char_bitmap (int w, int h,             const BYTE* bits, int bpp, BYTE* expanded,             int bg, int fg, BOOL erasebg, int bold, int italic){    int x, y;    int b = 0;    BYTE* line;    int line_bytes = bpp * (w + bold + italic);    line = expanded;    switch (bpp) {    case 1:        for (y = 0; y < h; y++) {            expanded = line;            if (erasebg) {                if (italic) x = (h - y) >> 1;                else x = 0;                for (; x < (w + bold + italic); x++) {                    *(expanded + x) = bg;                }            }            if (italic)                expanded += (h - y) >> 1;            for (x = 0; x < w; x++) {                if (x % 8 == 0)                    b = *bits++;                if ((b & (128 >> (x % 8)))) {                    *expanded = fg;                    if (bold)                        *(expanded + 1) = fg;                }                expanded++;            }            line += line_bytes;        }    break;    case 2:        for (y = 0; y < h; y++) {            expanded = line;            if (erasebg) {                if (italic) x = ((h - y) >> 1) << 1;                else x = 0;                for (; x < (w + bold + italic) << 1; x += 2) {                    *(Uint16 *) (expanded + x) = bg;                }            }            if (italic)                expanded += ((h - y) >> 1) << 1;            for (x = 0; x < w; x++) {                if (x % 8 == 0)                    b = *bits++;                if ((b & (128 >> (x % 8)))) {                    *(Uint16 *) expanded = fg;                    if (bold)                        *(Uint16 *)(expanded + 2) = fg;                }                expanded += 2;            }            line += line_bytes;        }    break;    case 3:        for (y = 0; y < h; y++) {            expanded = line;            if (erasebg) {                if (italic) x = ((h - y) >> 1 * 3);                else x = 0;                for (; x < (w + bold + italic) * 3; x += 3) {                    *(Uint16 *) (expanded + x) = bg;                    *(expanded + x + 2) = bg >> 16;                }            }            if (italic)                expanded += 3 * ((h - y) >> 1);            for (x = 0; x < w; x++) {                if (x % 8 == 0)                    b = *bits++;                if ((b & (128 >> (x % 8)))) {                    *(Uint16 *) expanded = fg;                    *(expanded + 2) = fg >> 16;                    if (bold) {                        *(Uint16 *)(expanded + 3) = fg;                        *(expanded + 5) = fg >> 16;                    }                }                                expanded += 3;            }            line += line_bytes;        }    break;    case 4:        for (y = 0; y < h; y++) {            expanded = line;            if (erasebg) {                if (italic) x = ((h - y) >> 1) << 2;                else x = 0;                for (; x < (w + bold + italic) << 2; x += 4) {                    *(Uint32 *) (expanded + x)= bg;                }            }            if (italic)                expanded += ((h - y) >> 1) << 2;            for (x = 0; x < w; x++) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月婷婷久久丁香| 国产精品短视频| 精品视频在线免费看| 白白色 亚洲乱淫| 精品一区二区免费| 成熟亚洲日本毛茸茸凸凹| 精油按摩中文字幕久久| 麻豆精品久久精品色综合| 日韩精品久久久久久| 天堂久久久久va久久久久| 亚洲成a人片在线观看中文| 亚洲免费三区一区二区| 一级女性全黄久久生活片免费| 国产精品久久久久四虎| 亚洲三级久久久| 亚洲精品ww久久久久久p站| 亚洲麻豆国产自偷在线| 亚洲成人av一区二区| 婷婷亚洲久悠悠色悠在线播放| 三级一区在线视频先锋| 麻豆视频一区二区| 精品夜夜嗨av一区二区三区| 国产在线播放一区三区四| 国产精品亚洲人在线观看| 成人综合在线视频| 色综合欧美在线视频区| 欧美少妇bbb| 精品91自产拍在线观看一区| 久久在线观看免费| 国产精品嫩草影院av蜜臀| 亚洲免费av高清| 日韩中文字幕不卡| 韩国成人精品a∨在线观看| 成人sese在线| 在线播放日韩导航| 国产日韩欧美精品一区| 一区二区三区美女| 久久99精品久久只有精品| 丁香激情综合国产| 欧美高清hd18日本| 国产日产欧产精品推荐色| 亚洲一区在线观看视频| 狠狠色狠狠色综合系列| 91丝袜高跟美女视频| 91精品国产综合久久福利软件 | 欧美三级午夜理伦三级中视频| 日韩欧美国产一二三区| 亚洲欧美另类久久久精品2019| 久久精品久久精品| 色av一区二区| 日本一区二区三区电影| 香蕉久久夜色精品国产使用方法| 成人一区二区在线观看| 欧美一级黄色大片| 一区二区三区不卡视频| 国产91丝袜在线播放0| 欧美一区午夜精品| 一个色妞综合视频在线观看| 国产高清在线观看免费不卡| 337p亚洲精品色噜噜噜| 一区二区三区蜜桃| 99re热这里只有精品视频| 久久天堂av综合合色蜜桃网| 偷拍日韩校园综合在线| 91片在线免费观看| 中文av一区二区| 国产精华液一区二区三区| 欧美电影一区二区| 亚洲一区二区在线观看视频| www.亚洲人| 国产精品丝袜黑色高跟| 国产传媒一区在线| 欧美成人激情免费网| 日日嗨av一区二区三区四区| 欧美午夜精品一区二区三区| 亚洲免费视频成人| 色噜噜久久综合| 亚洲柠檬福利资源导航| 91欧美一区二区| 亚洲女人的天堂| 色综合天天性综合| 亚洲天堂免费看| 91国产精品成人| 亚洲综合久久av| 欧美性色欧美a在线播放| 亚洲综合一二三区| 欧美色爱综合网| 秋霞电影一区二区| 日韩欧美国产高清| 国产精品一区二区不卡| 久久九九影视网| aaa欧美日韩| 亚洲二区视频在线| 欧美一区国产二区| 韩国欧美国产一区| 国产精品久久久久久亚洲毛片| 91在线你懂得| 一区二区三区av电影| 6080日韩午夜伦伦午夜伦| 男女性色大片免费观看一区二区| 欧美一区二区三区影视| 国内成+人亚洲+欧美+综合在线| 久久久国产一区二区三区四区小说| 国产a视频精品免费观看| 一区二区在线观看av| 欧美人伦禁忌dvd放荡欲情| 男女性色大片免费观看一区二区| 久久久综合视频| 色av成人天堂桃色av| 免费av成人在线| 欧美激情综合五月色丁香| 一本久久综合亚洲鲁鲁五月天| 日韩激情视频在线观看| 久久日一线二线三线suv| www.亚洲国产| 午夜精品福利一区二区蜜股av| 日韩视频免费观看高清完整版| 成人免费视频国产在线观看| 亚洲电影一区二区| 久久久久久久久久久久久夜| 色狠狠一区二区| 国产一二精品视频| 午夜精品久久久久久久久久| 日本一区二区三区电影| 717成人午夜免费福利电影| 国产宾馆实践打屁股91| 日韩精品一级二级| 中文字幕在线免费不卡| 日韩亚洲欧美中文三级| 99这里只有久久精品视频| 老司机精品视频一区二区三区| 亚洲黄色免费网站| 久久精品人人爽人人爽| 欧美一级黄色片| 欧美日韩一区二区三区免费看 | 国产精品伦一区| 老司机一区二区| 国产精品久久久久久久久久免费看| 色综合av在线| 激情亚洲综合在线| 日本午夜一区二区| 中文成人综合网| 日韩一区二区三区av| 国产成人综合亚洲网站| 国内外成人在线视频| 亚洲成人av中文| 综合久久国产九一剧情麻豆| 日韩一级片网站| 欧美一级黄色大片| 这里是久久伊人| 色综合一个色综合| 国产精品自拍网站| 国内精品视频一区二区三区八戒| 樱桃国产成人精品视频| 欧美r级电影在线观看| 精品一区二区在线播放| 亚洲福利视频一区| 日韩理论片在线| 中文字幕一区二区在线播放| 久久久久久亚洲综合影院红桃| 欧美福利视频导航| 欧美色综合天天久久综合精品| 99久久综合狠狠综合久久| 国产91精品精华液一区二区三区| 蜜桃视频一区二区| 无码av免费一区二区三区试看| 亚洲欧美国产三级| 亚洲天堂福利av| 亚洲美腿欧美偷拍| 亚洲色图欧美偷拍| 亚洲人成影院在线观看| 国产精品毛片久久久久久| 亚洲另类在线视频| 中文字幕一区二区在线观看 | 日韩欧美综合一区| 7777精品伊人久久久大香线蕉超级流畅| 色老汉一区二区三区| 国产91精品久久久久久久网曝门| 91视频一区二区| 色视频一区二区| 在线影院国内精品| 色哟哟国产精品免费观看| 欧美日韩在线免费视频| 欧美日韩在线直播| 91精品国产麻豆| 欧美一区二区三区影视| 国产丝袜在线精品| 国产精品久久午夜夜伦鲁鲁| 中文字幕在线一区二区三区| 欧美经典一区二区三区| 亚洲国产视频一区| 日韩黄色在线观看| 国产精品一色哟哟哟| 色婷婷狠狠综合| 欧美日本一区二区| 久久综合色之久久综合| 久久理论电影网| 亚洲bdsm女犯bdsm网站| 精品一区二区三区在线播放视频| 国内精品视频一区二区三区八戒|