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

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

?? interp.c

?? ttfdump源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* interp.c -- Instruction Interpreter * Copyright (C) 1996 Li-Da Lho, All right reserved. */#include "config.h"#include "ttf.h"#include "ttfutil.h"#ifdef MEMCHECK#include <dmalloc.h>#endif/* 	$Id: interp.c,v 1.1.1.1 1998/06/05 07:47:52 robert Exp $	 */#ifndef lintstatic char vcid[] = "$Id: interp.c,v 1.1.1.1 1998/06/05 07:47:52 robert Exp $";#endif /* lint *//* A bit about error checking: The execution of a TrueType instruction is  * "atomic" which mean that we don't process the error until a single * instruction is fully decoded and exectued *//* Pushing data onto the interpreter stack */void Interp_NPUSHB (VirtualMachine *vm){    BYTE i,n;    ULONG l;    n = GetBYTE(vm);    for (i=1;i<=n;i++)	{	    /* unsigned extension to four bytes */	    l = (ULONG) GetBYTE(vm);	    Push(vm, l);	}}void Interp_NPUSHW(VirtualMachine *vm){    BYTE i,n;    LONG l;    n = GetBYTE(vm);    for (i=1;i<=n;i++)	{	    /* signed extension to four bytes */	    l = (LONG) GetSHORT(vm);	    Push(vm, l);	}}void Interp_PUSHB(VirtualMachine *vm){    BYTE opcode,n,i;    ULONG l;    opcode = (vm->iStream)[vm->ip];    n = opcode - 0xB0;    for (i=0;i<=n;i++)	{	    l = (ULONG) GetBYTE(vm);	    Push(vm, l);	}}/* PUSHW[abc] Push Words  * Code Range 0xB8 - 0x0BF * From IS    w0,w1,...wn * Pushes     w0,w1,...wn */void Interp_PUSHW(VirtualMachine *vm){    BYTE opcode,n,i;    LONG l;    opcode = (vm->iStream)[vm->ip];    n = opcode - 0xB8;    for (i=0;i<=n;i++)	{	    l = (LONG) GetSHORT(vm);	    Push(vm,l);	}}/* Managing the Storage Area *//* RS[]   Read Store * Code Range 0x43 * Pops   location: Storage Area location (ULONG) * Pushes value: Storage Area value (ULONG) * Gets   Storage Area value */void Interp_RS(VirtualMachine *vm){    ULONG location,value;    location = Pop(vm);        value = (vm->StorageArea)[location];    Push(vm,value);}/* WS[]    Write Store * Code Range 0x42 * Pops    value: Storage Area value (ULONG) *         location: Storage Area location (ULONG) * Pushes  - * Sets    Storage Area */void Interp_WS(VirtualMachine *vm){    ULONG location,value;        value = Pop(vm);    location = Pop(vm);    (vm->StorageArea)[location] = value;}/* Managing the Control Value Table *//* WCVTP[] Write control Value Table in Pixel units * Code Range 0x44 * Pops    value: number in pixels (F26Dot6) *         location: Control Value Table location (ULONG) * Pushes  - * Sets    Control Value Table entry */void Interp_WCVTP(VirtualMachine *vm){    F26Dot6 value;    ULONG location;    value = Pop(vm);    location = Pop(vm);    (vm->cvt)[location] = value;}/* WCVTF[] Write Control Value Table in FUnits  * Code Range 0x70 * Pops    value: number in FUnits (ULONG) (LONG actually,i think) *         location: Control Value (ULONG) * Pushes  - * Sets    Control Value Table entry */void Interp_WCVTF(VirtualMachine *vm){    ULONG location;    LONG value;    value = Pop(vm);    location = Pop(vm);    value = ScaleToPoints(vm,value);    (vm->cvt)[location] = value;}/* RCVT[]  Read Control Value Table * Code Range 0x45 * Pops    location: CVT entry number (ULONG) * Pushes  value: CVT value (F26Dot6) * Gets    Control Value Table entry */void Interp_RCVT(VirtualMachine *vm){    ULONG location;    F26Dot6 value;    location = Pop(vm);    value = (vm->cvt)[location];    Push(vm,value);}/* Managing Graphics State *//* SVTCA[a] Set freedom and projection vector to Coordinate Axia * Code Range 0x00 - 0x01 * a        0: set to y axis *          1: set to x axis * Pops     - * Pushes   - * Sets     projection_vector *          freedom_vector */void Interp_SVTCA(VirtualMachine *vm){    BYTE opcode;    TTFUnitVector vect;    opcode = (vm->iStream)[vm->ip];    switch (opcode)	{	case 0x00:	    vect.x = 0;	    vect.y = F2Dot14_ONE;	    break;	case 0x01:	    vect.x = F2Dot14_ONE;	    vect.y = 0;	    break;	}    vm->gstate.projection_vector = vm->gstate.freedom_vector = vect;}/* SPVCA[a] Set projection vector to coordinate axis  * Code Range 0x02 - 0x03 * a        0: set to y axis *          1: set to x axis * Pops     - * Pushes   - * Sets     projection vector */void Interp_SPVTCA(VirtualMachine *vm){    BYTE opcode;    TTFUnitVector vect;    opcode = (vm->iStream)[vm->ip];    switch (opcode)	{	case 0x02:	    vect.x = 0;	    vect.y = F2Dot14_ONE;	    break;	case 0x03:	    vect.x = F2Dot14_ONE;	    vect.y = 0;	    break;	}    vm->gstate.projection_vector = vect;}/* SFVTCA[a] Set freedom vector to coordinate axis * Code Range 0x04 - 0x05 * a        0: set to y axis *          1: set to x axis * Pops     - * Pushes   - * Sets     freedom vector */void Interp_SFVTCA(VirtualMachine *vm){    BYTE opcode;    TTFUnitVector vect;    opcode = (vm->iStream)[vm->ip];    switch (opcode)	{	case 0x04:	    vect.x = 0;	    vect.y = F2Dot14_ONE;	    break;	case 0x05:	    vect.x = F2Dot14_ONE;	    vect.y = 0;	    break;	}    vm->gstate.freedom_vector = vect;}/* SPVTL[a] Set projection vector to line * Code Range 0x06 - 0x07 * a        0: set projection_vector to be parallel to line segment from p1  *             to p2 *          1: set projection_vector to be perpendicular to line segment from  *             p1 to p2; the vector is retated counter clockwise 90 degrees * Pops     p1: point number (ULONG) *          p2: point number (ULONG) * Pushes   - * Uses     point p1 in the zone pointed at by zp2 *          point p2 in the zone pointed at by zp1 * Sets     projection vector */void Interp_SPVTL(VirtualMachine *vm){    ULONG p1,p2;    BYTE opcode;    TTFUnitVector vect;    opcode = (vm->iStream)[vm->ip];    p1 = Pop(vm);    p2 = Pop(vm);    switch (opcode)	{	    /* not finished yet */	case 0x06:	    break;	case 0x07:	    break;	}    vm->gstate.projection_vector = vect;}/* SFVTL[a] Set freedom vector to line * Code Range 0x08 - 0x09 * a        0: set freedom_vector to be parallel to line segment from p1  *             to p2 *          1: set freedom_vector to be perpendicular to line segment from  *             p1 to p2; the vector is retated counter clockwise 90 degrees * Pops     p1: point number (ULONG) *          p2: point number (ULONG) * Pushes   - * Uses     point p1 in the zone pointed at by zp2 *          point p2 in the zone pointed at by zp1 * Sets     freedom vector */void Interp_SFVTL(VirtualMachine *vm){    ULONG p1,p2;    BYTE opcode;    TTFUnitVector vect;    opcode = (vm->iStream)[vm->ip];    p1 = Pop(vm);    p2 = Pop(vm);    switch (opcode)	{	    /* not finished yet */	case 0x08:	    break;	case 0x09:	    break;	}    vm->gstate.freedom_vector = vect;}/* SFVTPV[] Set freedom vector to projection vector * Code Range 0x0E * Pops     - * Pushes   - * Sets     freedom vector */void Interp_SFVTPV(VirtualMachine *vm){    vm->gstate.freedom_vector = vm->gstate.projection_vector;}/* SDPVTL[a] Set dual projection vector to line * Code Range 0x86 - 0x87 * a         0: vectors are parallel to line  *           1: vectors are perpendicular to line * Pops      p1: first point number (ULONG) *           p2: second point number (ULONG) * Pushes    - * Sets      dual_projection_vector and projection_vector * Uses      point p1 in the zone pointed by zp2 *           point p2 in the zone pointed by zp1 */void Interp_SDPVTL(VirtualMachine *vm){    ULONG p1,p2;    BYTE opcode;    TTFUnitVector vect;    opcode = (vm->iStream)[vm->ip];    p1 = Pop(vm);    p2 = Pop(vm);    switch (opcode)	{	    /* not finished yet */	case 0x86:	    break;	case 0x87:	    break;	}    vm->gstate.dual_projection_vector = vm->gstate.projection_vector = vect;}/* SPVFS[] Set projection vector from stack * Code Range 0x0A * Pops    y: y component of projection vector (2.14 padded with zeros) *         x: x component of projection vector (2.14 padded with zeros) * Pushes  - * Sets    projection_vector */void Inpterp_SPVFS(VirtualMachine *vm){    F2Dot14 x,y;    x = Pop(vm);    y = Pop(vm);    vm->gstate.projection_vector.x = x;    vm->gstate.projection_vector.y = y;    /* vm->gstate.projection = Normalize(vm->gstate.projection); ?? */}/* SFVFS[] Set freedom vector form stack * Code Range 0x0B * Pops    y: y component of freedom vector (2.14 padded with zeros) *         x: x component of freedom vector (2.14 padded with zeros) * Pushes  - * Sets    freedom_vector */void Inpterp_SFVFS(VirtualMachine *vm){    F2Dot14 x,y;    x = Pop(vm);    y = Pop(vm);    vm->gstate.freedom_vector.x = x;    vm->gstate.freedom_vector.y = y;    /* vm->gstate.freedom = Normalize(vm->gstate.freedom); ?? */}/* GPV[]   Get projection vector * Code Range 0x0C * Pops    - * Pushes  x: x component of projection vector (2.14 padded with zeros) *         y: y component of projection vector (2.14 padded with zeros) * Gets    projection vector */void Interp_GPV(VirtualMachine *vm){    ULONG l;    l = (ULONG) vm->gstate.projection_vector.x;    Push(vm,l);    l = (ULONG) vm->gstate.projection_vector.y;    Push(vm,l);}/* GFV[] Get freedom vector  * Code Range 0x0D * Pops    - * Pushes  x: x component of freedom vector (2.14 padded with zeros) *         y: y component of freedom vector (2.14 padded with zeros) * Gets    freedom vector */void Interp_GFV(VirtualMachine *vm){    ULONG l;    l = (ULONG) vm->gstate.freedom_vector.x;    Push(vm,l);    l = (ULONG) vm->gstate.freedom_vector.y;    Push(vm,l);}/* SRP0[]  Set reference point 0 * Code Range 0x10 * Pops    p: point number (ULONG) * Pushes  - * Sets    rp0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久看人人爽人人| 综合色天天鬼久久鬼色| 国产一区二区三区在线观看精品| 日韩一区中文字幕| 久久久夜色精品亚洲| 一区二区三区91| 亚洲成人动漫在线观看| 中文字幕巨乱亚洲| 久久久久亚洲蜜桃| 天堂va蜜桃一区二区三区| 日韩在线观看一区二区| 丰满少妇在线播放bd日韩电影| 久久国产精品免费| 国产一区二区三区免费看| 91国产精品成人| 色婷婷久久99综合精品jk白丝 | 亚洲精品在线三区| 日韩欧美黄色影院| 日韩欧美一区电影| 亚洲国产va精品久久久不卡综合| 日本色综合中文字幕| 国内精品国产成人国产三级粉色| 国产福利91精品一区| 91美女片黄在线观看| 欧美自拍偷拍一区| 日韩欧美亚洲国产另类| 亚洲自拍偷拍图区| 另类小说色综合网站| 9191成人精品久久| 久久综合九色综合97婷婷女人 | 亚洲男人都懂的| 1000精品久久久久久久久| 国产盗摄女厕一区二区三区| 久久久久久亚洲综合| 国产精品资源在线观看| 欧美日韩成人综合天天影院| 久久人人超碰精品| 狠狠色丁香婷综合久久| 国产网站一区二区| 三级不卡在线观看| 51久久夜色精品国产麻豆| 午夜精品久久久久久久久| 成人免费看的视频| 日韩视频国产视频| 一区二区高清视频在线观看| 欧美日韩在线直播| 国产精品久久久久精k8| 久久激情五月婷婷| 国产日韩欧美不卡在线| 日本aⅴ亚洲精品中文乱码| 91视视频在线观看入口直接观看www | 中文字幕色av一区二区三区| 色综合一区二区三区| 日韩一区二区免费在线观看| 免费成人av资源网| 中文字幕久久午夜不卡| 欧美性生活久久| 亚洲天堂中文字幕| 欧美日韩一卡二卡| 狠狠色狠狠色综合| 亚洲欧美影音先锋| 欧美视频完全免费看| 久久精品久久综合| 中文字幕一区二区视频| 欧美色视频在线| 韩国成人精品a∨在线观看| 综合电影一区二区三区 | 午夜不卡av在线| 久久久久99精品一区| 91麻豆swag| 美女网站色91| 91精品国产一区二区| 亚洲午夜精品在线| 久久久亚洲午夜电影| 欧美中文字幕久久| 懂色av一区二区在线播放| 午夜久久福利影院| 国产精品久久久久久久岛一牛影视 | 亚洲欧美综合色| 欧美一区二区三区爱爱| 不卡视频一二三四| 欧美韩国一区二区| 欧美日韩精品高清| 成人av免费在线观看| 日本不卡一区二区| 国产精品九色蝌蚪自拍| 欧美大片在线观看一区二区| 色999日韩国产欧美一区二区| 久久激情五月激情| 午夜精品在线看| 亚洲免费在线看| 欧美国产日韩a欧美在线观看| 日韩一区二区三区精品视频| 91成人免费在线视频| 成人黄色电影在线| 国产精品一区在线观看乱码| 秋霞成人午夜伦在线观看| 一区二区免费看| 中文字幕在线观看一区二区| 久久久久久久久久久久电影| 日韩免费电影一区| 91.com在线观看| 欧美系列在线观看| 欧美亚日韩国产aⅴ精品中极品| 成人开心网精品视频| 国产不卡高清在线观看视频| 国产剧情一区二区| 久久成人av少妇免费| 石原莉奈在线亚洲二区| 三级在线观看一区二区| 亚洲高清久久久| 一个色在线综合| 一区二区三区四区av| 一区二区三区加勒比av| 曰韩精品一区二区| 日韩欧美一区二区免费| 日韩一级在线观看| 欧美精品一区二| 精品91自产拍在线观看一区| 日韩精品一区二区在线观看| 91精品中文字幕一区二区三区| 欧美福利电影网| av成人老司机| 久久成人麻豆午夜电影| 激情小说欧美图片| 国产suv一区二区三区88区| 成人丝袜18视频在线观看| 成人黄色777网| 97精品久久久久中文字幕| 精品一区二区国语对白| 一区二区免费看| 日精品一区二区| 精品在线免费观看| 成人免费av在线| 在线观看日韩一区| 制服丝袜亚洲播放| 久久久久久久一区| 亚洲欧美色综合| 日本vs亚洲vs韩国一区三区二区| 老司机精品视频一区二区三区| 国产成人综合自拍| 色狠狠av一区二区三区| 欧美精品电影在线播放| 久久久久久一二三区| 一区二区三区久久| 精品一区二区三区在线观看国产| 东方欧美亚洲色图在线| 欧洲日韩一区二区三区| 精品国产sm最大网站| 中文字幕在线一区二区三区| 亚洲国产aⅴ天堂久久| 国产精品99久| 欧美视频一二三区| 久久精品亚洲国产奇米99| 一区二区激情视频| 国产黄人亚洲片| 欧美人牲a欧美精品| 中文子幕无线码一区tr| 亚洲国产一区二区视频| 国内精品久久久久影院薰衣草| 91久久精品一区二区三区| www亚洲一区| 亚洲成人福利片| 国产91精品一区二区| 欧美日韩国产欧美日美国产精品| 日本一区二区三级电影在线观看| 一区2区3区在线看| 岛国精品在线观看| 在线不卡的av| 综合在线观看色| 国产成人亚洲综合a∨婷婷| 欧美日韩日日夜夜| 亚洲欧美另类综合偷拍| 久久超级碰视频| 欧美精品在线视频| 亚洲激情成人在线| 成人av免费在线| 久久一区二区视频| 久久不见久久见免费视频1| 色婷婷精品久久二区二区蜜臀av| 欧美国产丝袜视频| 国产乱国产乱300精品| 日韩一区二区三区视频| 午夜伦欧美伦电影理论片| 色综合网站在线| 国产精品区一区二区三| 亚洲欧美日韩国产另类专区| 国产一区二区精品在线观看| 欧美一卡二卡在线观看| 亚洲一区二区三区四区中文字幕| 91在线你懂得| 中文字幕av不卡| 成人综合婷婷国产精品久久蜜臀| 久久综合丝袜日本网| 日日摸夜夜添夜夜添国产精品| 欧美日免费三级在线| 亚洲一区二区av电影| 在线观看91视频| 一区二区欧美在线观看| 精品视频资源站|