/***************************************************************************/
/* */
/* ttinterp.c */
/* */
/* TrueType bytecode interpreter (body). */
/* */
/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, */
/* 2010 */
/* by David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
#include <ft2build.h>
#include FT_INTERNAL_DEBUG_H
#include FT_INTERNAL_CALC_H
#include FT_TRIGONOMETRY_H
#include FT_SYSTEM_H
#include "ttinterp.h"
#include "tterrors.h"
#ifdef TT_USE_BYTECODE_INTERPRETER
#define TT_MULFIX FT_MulFix
#define TT_MULDIV FT_MulDiv
#define TT_MULDIV_NO_ROUND FT_MulDiv_No_Round
/*************************************************************************/
/* */
/* The macro FT_COMPONENT is used in trace mode. It is an implicit */
/* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
/* messages during execution. */
/* */
#undef FT_COMPONENT
#define FT_COMPONENT trace_ttinterp
/*************************************************************************/
/* */
/* In order to detect infinite loops in the code, we set up a counter */
/* within the run loop. A single stroke of interpretation is now */
/* limited to a maximal number of opcodes defined below. */
/* */
#define MAX_RUNNABLE_OPCODES 1000000L
/*************************************************************************/
/* */
/* There are two kinds of implementations: */
/* */
/* a. static implementation */
/* */
/* The current execution context is a static variable, which fields */
/* are accessed directly by the interpreter during execution. The */
/* context is named `cur'. */
/* */
/* This version is non-reentrant, of course. */
/* */
/* b. indirect implementation */
/* */
/* The current execution context is passed to _each_ function as its */
/* first argument, and each field is thus accessed indirectly. */
/* */
/* This version is fully re-entrant. */
/* */
/* The idea is that an indirect implementation may be slower to execute */
/* on low-end processors that are used in some systems (like 386s or */
/* even 486s). */
/* */
/* As a consequence, the indirect implementation is now the default, as */
/* its performance costs can be considered negligible in our context. */
/* Note, however, that we kept the same source with macros because: */
/* */
/* - The code is kept very close in design to the Pascal code used for */
/* development. */
/* */
/* - It's much more readable that way! */
/* */
/* - It's still open to experimentation and tuning. */
/* */
/*************************************************************************/
#ifndef TT_CONFIG_OPTION_STATIC_INTERPRETER /* indirect implementation */
#define CUR (*exc) /* see ttobjs.h */
/*************************************************************************/
/* */
/* This macro is used whenever `exec' is unused in a function, to avoid */
/* stupid warnings from pedantic compilers. */
/* */
#define FT_UNUSED_EXEC FT_UNUSED( exc )
#else /* static implementation */
#define CUR cur
#define FT_UNUSED_EXEC int __dummy = __dummy
static
TT_ExecContextRec cur; /* static exec. context variable */
/* apparently, we have a _lot_ of direct indexing when accessing */
/* the static `cur', which makes the code bigger (due to all the */
/* four bytes addresses). */
#endif /* TT_CONFIG_OPTION_STATIC_INTERPRETER */
/*************************************************************************/
/* */
/* The instruction argument stack. */
/* */
#define INS_ARG EXEC_OP_ FT_Long* args /* see ttobjs.h for EXEC_OP_ */
/*************************************************************************/
/* */
/* This macro is used whenever `args' is unused in a function, to avoid */
/* stupid warnings from pedantic compilers. */
/* */
#define FT_UNUSED_ARG FT_UNUSED_EXEC; FT_UNUSED( args )
/*************************************************************************/
/* */
/* The following macros hide the use of EXEC_ARG and EXEC_ARG_ to */
/* increase readability of the code. */
/* */
/*************************************************************************/
#define SKIP_Code() \
SkipCode( EXEC_ARG )
#define GET_ShortIns() \
GetShortIns( EXEC_ARG )
#define NORMalize( x, y, v ) \
Normalize( EXEC_ARG_ x, y, v )
#define SET
没有合适的资源?快使用搜索试试~ 我知道了~
Cocos2d-x 2.1.5
共7194个文件
h:1928个
png:1533个
cpp:602个
需积分: 5 2 下载量 58 浏览量
2023-04-15
09:35:19
上传
评论
收藏 183.28MB ZIP 举报
温馨提示
官方已经没得这个版本了,但一些老项目用到了。良心奉献!
资源推荐
资源详情
资源评论
收起资源包目录
Cocos2d-x 2.1.5 (7194个子文件)
libtiff.so.5.1.0 0B
libssl.so.1.0.0 0B
libcares.so.2.0.0 0B
libcrypto.so.1.0.0 0B
libfontconfig.so.1.5.0 0B
libpng.so.3.50.0 0B
libcurl.so.4.3.0 0B
luajit.1 2KB
libfreetype.so.6.8.1 0B
libexpat.so.1.5.2 0B
libjpeg.so.8.0.2 0B
libidn.so.11.5.44 0B
libz.so.1.2.5 0B
libjs_static.a 14.85MB
libjs_static.a 11.26MB
libjs_static.a 9.63MB
libjs_static.a 9.62MB
libcurl.a 9.34MB
libjs_static.a 8.5MB
libfreetype.a 4.66MB
libcurl.a 4.08MB
libcurl.a 4MB
libcurl.a 3.91MB
libxml2.a 3.79MB
libfreetype.a 2.71MB
libvorbis.a 2.31MB
libtiff.a 2.31MB
libjpeg.a 2MB
libFlurry.a 1.9MB
libvorbis.a 1.78MB
libwebp.a 1.54MB
libtiff.a 1.52MB
libtiff.a 1.48MB
libjpeg.a 1.43MB
libjpeg.a 1.39MB
libwebp.a 1.37MB
libwebp.a 1.35MB
libtiff.a 1.31MB
libwebp.a 1.18MB
libluajit.a 1.17MB
libMobClickLibrary.a 1.12MB
libpng.a 970KB
libtiff.a 839KB
libpng.a 829KB
libjpeg.a 778KB
libwebp.a 699KB
libpng15.a 694KB
libwebp.a 686KB
libluajit.a 660KB
libtiff.a 653KB
libpng.a 649KB
libtiff.a 616KB
libcurl.a 602KB
libtiff.a 563KB
libluajit.a 554KB
libwebp.a 545KB
libluajit.a 537KB
libpng.a 477KB
libcurl.a 466KB
libwebp.a 438KB
libwebp.a 434KB
libwebp.a 409KB
libwebp.a 360KB
libjpeg.a 337KB
libjpeg.a 335KB
libpng.a 280KB
libpng.a 260KB
libz.a 251KB
libtiffxx.a 220KB
libwebsockets.a 186KB
libwebsockets.a 93KB
libwebsockets.a 75KB
libwebsockets.a 75KB
Makefile.am 1KB
Makefile.am 969B
Makefile.am 926B
Makefile.am 797B
Makefile.am 469B
alipay_plugin.apk 257KB
alipay_plugin.apk 257KB
alipay_plugin.apk 257KB
spineboy.atlas 2KB
AUTHORS 16KB
build-android-2.2-3.2-release.bat 6KB
build-android-2.2-3.2-debug.bat 5KB
build-android-4.x-release.bat 5KB
build-android-4.x-debug.bat 4KB
androidtestcommon.bat 4KB
msvcbuild.bat 3KB
xedkbuild.bat 3KB
test-android-2.2-3.2-release.bat 2KB
build-win32.bat 2KB
test-android-2.2-3.2-debug.bat 2KB
create-android-project.bat 2KB
genbindings-win32.bat 2KB
test-android-4.x-release.bat 2KB
test-android-4.x-debug.bat 2KB
test-win-vs2010_release.bat 949B
test-win-vs2008_release.bat 945B
test-win-vs2010_debug.bat 922B
共 7194 条
- 1
- 2
- 3
- 4
- 5
- 6
- 72
资源评论
leinchu
- 粉丝: 148
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功