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

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

?? varbitmap.c

?? 這是針對 Linux (i386)平臺的 minigui 3.6.2 開發包(MiniGUI-Processes 運行模式)。
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** $Id: varbitmap.c,v 1.37 2005/01/05 04:07:11 weiym Exp $** ** varbitmap.c: The Var Bitmap Font operation set.**** Copyright (C) 2003, 2004, 2005 Feynman Software** Copyright (C) 2000, 2001, 2002 Wei Yongming**** Create date: 2000/06/13*//*** 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 <string.h>#include <assert.h>#include "common.h"#ifdef _VBF_SUPPORT#include "minigui.h"#include "gdi.h"#include "endianrw.h"#include "misc.h"#ifdef HAVE_MMAP    #include <fcntl.h>    #include <unistd.h>    #include <sys/types.h>    #include <sys/mman.h>    #include <sys/stat.h>#endif#include "devfont.h"#include "varbitmap.h"#include "charset.h"#include "fontname.h"/*************** Variable bitmap font operations *********************************/static int get_char_width (LOGFONT* logfont, DEVFONT* devfont,                 const unsigned char* mchar, int len){    VBFINFO* vbf_info = VARFONT_INFO_P (devfont);    if (vbf_info->width == NULL)        return vbf_info->max_width;    assert (len == 1);    if (*mchar < vbf_info->first_char || *mchar > vbf_info->last_char)        return vbf_info->width [vbf_info->def_char - vbf_info->first_char];    return vbf_info->width [*mchar - vbf_info->first_char];}static int get_max_width (LOGFONT* logfont, DEVFONT* devfont){   return VARFONT_INFO_P (devfont)->max_width; }static int get_str_width (LOGFONT* logfont, DEVFONT* devfont,                 const unsigned char* mstr, int n, int cExtra){    int i;    int str_width;    VBFINFO* vbf_info = VARFONT_INFO_P (devfont);        if (vbf_info->width == NULL)        return n * (vbf_info->max_width + cExtra);    str_width = 0;    for (i = 0; i < n; i++) {        if (mstr [i] < vbf_info->first_char || mstr [i] > vbf_info->last_char)            str_width += vbf_info->width [vbf_info->def_char - vbf_info->first_char];        else            str_width += vbf_info->width [mstr[i] - vbf_info->first_char];        str_width += cExtra;    }    return str_width;}static int get_ave_width (LOGFONT* logfont, DEVFONT* devfont){    return VARFONT_INFO_P(devfont)->ave_width;}static int get_font_height (LOGFONT* logfont, DEVFONT* devfont){    return VARFONT_INFO_P (devfont)->height;}static int get_font_size (LOGFONT* logfont, DEVFONT* devfont, int expect){    return VARFONT_INFO_P (devfont)->height;}static int get_font_ascent (LOGFONT* logfont, DEVFONT* devfont){    return VARFONT_INFO_P (devfont)->height - VARFONT_INFO_P (devfont)->descent;}static int get_font_descent (LOGFONT* logfont, DEVFONT* devfont){    return VARFONT_INFO_P (devfont)->descent;}static size_t char_bitmap_size (LOGFONT* logfont, DEVFONT* devfont,                 const unsigned char* mchar, int len){    int width;    VBFINFO* vbf_info = VARFONT_INFO_P (devfont);    if (vbf_info->width == NULL)        width = vbf_info->max_width;    else if (*mchar < vbf_info->first_char || *mchar > vbf_info->last_char)        width = vbf_info->width [vbf_info->def_char - vbf_info->first_char];    else        width = vbf_info->width [*mchar - vbf_info->first_char];       return ((width + 7) >> 3) * vbf_info->height;}static size_t max_bitmap_size (LOGFONT* logfont, DEVFONT* devfont){    return (((size_t)VARFONT_INFO_P (devfont)->max_width + 7) >> 3)                 * VARFONT_INFO_P (devfont)->height;}static const void* get_char_bitmap (LOGFONT* logfont, DEVFONT* devfont,            const unsigned char* mchar, int len){    int offset;    unsigned char eff_char = *mchar;    VBFINFO* vbf_info = VARFONT_INFO_P (devfont);    if (*mchar < vbf_info->first_char || *mchar > vbf_info->last_char)        eff_char = vbf_info->def_char;    if (vbf_info->offset == NULL)        offset = (((size_t)vbf_info->max_width + 7) >> 3) * vbf_info->height                     * (eff_char - vbf_info->first_char);    else {        offset = vbf_info->offset [eff_char - vbf_info->first_char];#if MGUI_BYTEORDER == MGUI_BIG_ENDIAN        if (vbf_info->font_size)            offset = ArchSwap16 (offset);#endif    }    return vbf_info->bits + offset;}static int get_char_bbox (LOGFONT* logfont, DEVFONT* devfont,            const unsigned char* mchar, int len,            int* px, int* py, int* pwidth, int* pheight){    int tempint;    VBFINFO* vbf_info = VARFONT_INFO_P (devfont);    if (vbf_info->version == 2)    {        int offset;        unsigned char eff_char = *mchar;        if (*mchar < vbf_info->first_char || *mchar > vbf_info->last_char)            eff_char = vbf_info->def_char;        offset = eff_char - vbf_info->first_char;            if (px)        {            tempint = vbf_info->bbox_x[offset];#if MGUI_BYTEORDER == MGUI_BIG_ENDIAN            tempint = ArchSwap32(tempint);#endif            *px += tempint;        }        if (py)        {            tempint = vbf_info->bbox_y[offset];#if MGUI_BYTEORDER == MGUI_BIG_ENDIAN            tempint = ArchSwap32(tempint);#endif            *py -= tempint;        }        if (pwidth)        {            tempint = vbf_info->bbox_w[offset];#if MGUI_BYTEORDER == MGUI_BIG_ENDIAN            tempint = ArchSwap32(tempint);#endif            *pwidth = tempint;        }        if (pheight)        {            tempint = vbf_info->bbox_h[offset];#if MGUI_BYTEORDER == MGUI_BIG_ENDIAN            tempint = ArchSwap32(tempint);#endif            *pheight = tempint;        }    }    else    {        if(pwidth)            *pwidth     = get_char_width(logfont, devfont, mchar, len);        if(pheight)            *pheight    = vbf_info->height;        if(py)            *py        -= get_font_ascent(logfont, devfont);        //if(px)        //    *px = 0;    }    return pwidth?*pwidth:-1;}static void get_char_advance (LOGFONT* logfont, DEVFONT* devfont,                const unsigned char* mchar, int len,                 int* px, int* py){    int width = get_char_width(logfont, devfont, mchar, len);    //printf("x %d, y %d, width %d\n", *px, *py, width);	*px += width;}/**************************** Global data ************************************/static FONTOPS var_bitmap_font_ops = {    get_char_width,    get_str_width,    get_ave_width,    get_max_width,    get_font_height,    get_font_size,    get_font_ascent,    get_font_descent,    char_bitmap_size,    max_bitmap_size,    get_char_bitmap,    NULL,    NULL,    get_char_bbox,    get_char_advance,    NULL,    NULL};/******************* In-core var bitmap fonts ********************************/static VBFINFO* incore_vbfonts [] = {#ifdef _INCOREFONT_SANSSERIF    &vbf_SansSerif11x13,#endif#ifdef _INCOREFONT_COURIER    &vbf_Courier8x13,#endif#ifdef _INCOREFONT_SYMBOL    &vbf_symb12,#endif#ifdef _INCOREFONT_VGAS    &vbf_VGAOEM8x8,    &vbf_Terminal8x12,    &vbf_System14x16,    &vbf_Fixedsys8x15,#endif#ifdef _INCOREFONT_HELV    &vbf_helvR16,    &vbf_helvR21,    &vbf_helvR27,#endif};#define NR_VBFONTS  (sizeof (incore_vbfonts) /sizeof (VBFINFO*))static DEVFONT* incore_vbf_dev_font;static CHARSETOPS* vbfGetCharsetOps (VBFINFO* vbfont){    int count = 0;    const char* font_name = vbfont->name;    while (*font_name) {        if (*font_name == '-') count ++;        if (count == 4) break;        font_name ++;    }    if (*font_name != '-') return NULL;    font_name ++;    return GetCharsetOps (font_name);}BOOL InitIncoreVBFonts (void){    int i;    if ((incore_vbf_dev_font = malloc (NR_VBFONTS * sizeof (DEVFONT))) == NULL)        return FALSE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利资源站| 欧美大片在线观看一区二区| 97精品久久久久中文字幕| 亚洲午夜精品久久久久久久久| 国产原创一区二区| 一区二区三区日韩欧美| 91性感美女视频| 日韩国产精品久久久| 亚洲精品久久7777| 99久久精品国产一区| 中文字幕av一区二区三区高 | 97se亚洲国产综合在线| 美国十次了思思久久精品导航| 国产精品国产三级国产专播品爱网 | 日韩一级欧美一级| 色成人在线视频| 久久精品在这里| 91精品国产一区二区人妖| 99精品久久只有精品| 久久亚洲免费视频| 国产凹凸在线观看一区二区| 日本午夜精品一区二区三区电影| 亚洲日本乱码在线观看| 免费成人av在线播放| 久久99这里只有精品| 欧美一区二区日韩| 欧洲国产伦久久久久久久| 午夜欧美在线一二页| 成人欧美一区二区三区视频网页| 欧美系列日韩一区| 激情深爱一区二区| 亚洲高清免费在线| 国产午夜一区二区三区| 精品日本一线二线三线不卡| 制服.丝袜.亚洲.另类.中文| 欧美群妇大交群中文字幕| 国产一区二区三区最好精华液| 亚洲一区二区三区四区中文字幕| 日本伦理一区二区| 日本高清不卡一区| 91福利国产成人精品照片| 日韩国产在线一| 视频一区视频二区中文字幕| 水野朝阳av一区二区三区| 日本不卡不码高清免费观看| 免费xxxx性欧美18vr| 中文字幕日韩精品一区 | 久久久亚洲精华液精华液精华液| 色综合久久99| 成人少妇影院yyyy| 99在线精品视频| 91黄视频在线| 9191国产精品| 99久久精品国产一区二区三区| av中文字幕亚洲| 国产一级精品在线| 大胆欧美人体老妇| 日韩成人一区二区三区在线观看| xfplay精品久久| 欧美群妇大交群中文字幕| 91免费看视频| 成人激情免费网站| 色香蕉成人二区免费| 成人精品鲁一区一区二区| 99精品国产视频| 在线一区二区三区做爰视频网站| 亚洲一级二级三级在线免费观看| 91丝袜高跟美女视频| 欧美中文字幕一区| 日韩一区二区在线免费观看| 91色在线porny| 欧美丰满嫩嫩电影| 国产日韩成人精品| 亚洲一二三四在线| 亚洲精品福利视频网站| 中文幕一区二区三区久久蜜桃| 亚洲男帅同性gay1069| 日韩av不卡在线观看| 肉肉av福利一精品导航| 精品制服美女久久| 免费在线成人网| 日本欧美在线看| 天天影视涩香欲综合网 | 91成人在线精品| 91色乱码一区二区三区| 欧美电影在线免费观看| 欧美激情一区三区| 亚洲电影第三页| 视频一区中文字幕| 日韩av午夜在线观看| 成人毛片视频在线观看| 91精品国产综合久久久久久| 日韩三级精品电影久久久 | 免费高清在线视频一区·| 免费观看在线色综合| 色综合色狠狠天天综合色| 2017欧美狠狠色| 视频一区二区三区中文字幕| 99久久免费视频.com| 91看片淫黄大片一级在线观看| 91在线视频官网| 在线看国产一区二区| 亚洲国产岛国毛片在线| 日韩av电影天堂| 欧美三级蜜桃2在线观看| 国产精品污污网站在线观看| 最新不卡av在线| 国产激情偷乱视频一区二区三区| 欧美精品一二三区| 久久久夜色精品亚洲| 国产精品丝袜一区| 久久99精品国产.久久久久久| 欧美在线999| 亚洲免费观看高清完整| heyzo一本久久综合| 久久一留热品黄| 国产精品免费视频网站| 亚洲综合男人的天堂| 日本麻豆一区二区三区视频| 欧美在线观看你懂的| 艳妇臀荡乳欲伦亚洲一区| 99视频精品免费视频| 欧美日本一区二区| 久久亚洲免费视频| 一区二区三区欧美| 精品一区中文字幕| 成人午夜激情视频| 久久精品男人天堂av| 亚洲精选免费视频| 国产喂奶挤奶一区二区三区| 国产精品理论在线观看| 美女网站一区二区| 成人黄色av网站在线| 欧美精品一区二区三区一线天视频| 国产精品久久毛片av大全日韩| 国产老肥熟一区二区三区| 色偷偷成人一区二区三区91| 中文字幕日韩一区二区| 麻豆精品一二三| 精品国产网站在线观看| 国产真实乱对白精彩久久| www欧美成人18+| 国产.欧美.日韩| 国产精品国产自产拍在线| 久久99国产精品麻豆| 2020日本不卡一区二区视频| 亚洲一区在线观看免费观看电影高清| 色婷婷国产精品久久包臀| 久久亚洲免费视频| 成人黄色国产精品网站大全在线免费观看 | 欧美久久一二三四区| 日韩精品每日更新| 精品国产免费一区二区三区香蕉| 亚洲黄色免费网站| 欧美蜜桃一区二区三区| 国产精品视频一二三| 久久精品二区亚洲w码| 国产亚洲女人久久久久毛片| 日本成人在线电影网| 精品少妇一区二区三区日产乱码 | 精品系列免费在线观看| 久久久五月婷婷| va亚洲va日韩不卡在线观看| 一区二区三区美女| 欧美一级xxx| 成人app在线| 婷婷夜色潮精品综合在线| 欧美tk丨vk视频| 91网站最新地址| 日韩电影免费在线观看网站| 欧美性三三影院| 一区2区3区在线看| 日韩一区二区影院| 日韩电影免费在线| 91麻豆精品国产91久久久更新时间| 一区二区高清在线| 精品99久久久久久| 久久99精品国产91久久来源| 国产精品盗摄一区二区三区| 国产91精品久久久久久久网曝门| 国产亚洲综合性久久久影院| 国产一区二区视频在线| 亚洲男人的天堂在线aⅴ视频| 日韩欧美视频一区| 91视频你懂的| 亚洲制服丝袜在线| 欧美日本在线观看| 免费三级欧美电影| 国产精品女人毛片| 91国产视频在线观看| 亚洲午夜久久久久中文字幕久| 欧美性感一类影片在线播放| 国产盗摄一区二区三区| 亚洲va国产天堂va久久en| 欧美一级国产精品| 99re热这里只有精品视频| 国内精品写真在线观看| 国产精品色哟哟网站| 色呦呦国产精品| 丰满少妇久久久久久久|