ray 0.1.0.pre1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +235 -32
- data/Rakefile +20 -49
- data/ext/audio.c +68 -0
- data/ext/audio_source.c +197 -0
- data/ext/buffer_renderer.c +130 -0
- data/ext/color.c +179 -0
- data/ext/drawable.c +446 -0
- data/ext/event.c +337 -0
- data/ext/extconf.rb +80 -6
- data/ext/font.c +97 -0
- data/ext/gl.c +114 -0
- data/ext/gl_buffer.c +224 -0
- data/ext/gl_index_buffer.c +202 -0
- data/ext/gl_int_array.c +139 -0
- data/ext/gl_vertex.c +157 -0
- data/ext/image.c +263 -0
- data/ext/image_target.c +84 -0
- data/ext/input.c +53 -0
- data/ext/matrix.c +374 -0
- data/ext/music.c +113 -0
- data/ext/polygon.c +426 -0
- data/ext/ray.c +59 -0
- data/ext/ray.h +168 -0
- data/ext/rect.c +255 -0
- data/ext/say.h +31 -0
- data/ext/say_all.h +77 -0
- data/ext/say_arial.h +14689 -0
- data/ext/say_array.c +124 -0
- data/ext/say_array.h +34 -0
- data/ext/say_audio.c +64 -0
- data/ext/say_audio.h +170 -0
- data/ext/say_audio_context.c +40 -0
- data/ext/say_audio_source.c +96 -0
- data/ext/say_basic_type.c +17 -0
- data/ext/say_basic_type.h +47 -0
- data/ext/say_buffer.c +277 -0
- data/ext/say_buffer.h +37 -0
- data/ext/say_buffer_renderer.c +121 -0
- data/ext/say_buffer_renderer.h +33 -0
- data/ext/say_buffer_slice.c +247 -0
- data/ext/say_buffer_slice.h +29 -0
- data/ext/say_clean_up.c +14 -0
- data/ext/say_context.c +163 -0
- data/ext/say_context.h +26 -0
- data/ext/say_drawable.c +350 -0
- data/ext/say_drawable.h +100 -0
- data/ext/say_error.c +27 -0
- data/ext/say_event.h +213 -0
- data/ext/say_font.c +335 -0
- data/ext/say_font.h +51 -0
- data/ext/say_image.c +283 -0
- data/ext/say_image.h +52 -0
- data/ext/say_image_target.c +134 -0
- data/ext/say_image_target.h +25 -0
- data/ext/say_imp.h +70 -0
- data/ext/say_index_buffer.c +90 -0
- data/ext/say_index_buffer.h +29 -0
- data/ext/say_index_buffer_slice.c +227 -0
- data/ext/say_index_buffer_slice.h +28 -0
- data/ext/say_input.c +35 -0
- data/ext/say_matrix.c +314 -0
- data/ext/say_matrix.h +55 -0
- data/ext/say_music.c +225 -0
- data/ext/say_osx.h +62 -0
- data/ext/say_osx_context.h +98 -0
- data/ext/say_osx_window.h +766 -0
- data/ext/say_polygon.c +358 -0
- data/ext/say_polygon.h +62 -0
- data/ext/say_renderer.c +42 -0
- data/ext/say_renderer.h +22 -0
- data/ext/say_shader.c +375 -0
- data/ext/say_shader.h +91 -0
- data/ext/say_sound.c +67 -0
- data/ext/say_sound_buffer.c +96 -0
- data/ext/say_sprite.c +273 -0
- data/ext/say_sprite.h +53 -0
- data/ext/say_string.c +9 -0
- data/ext/say_table.c +86 -0
- data/ext/say_table.h +24 -0
- data/ext/say_target.c +264 -0
- data/ext/say_target.h +67 -0
- data/ext/say_text.c +441 -0
- data/ext/say_text.h +56 -0
- data/ext/say_thread.c +46 -0
- data/ext/say_thread.h +39 -0
- data/ext/say_thread_variable.c +44 -0
- data/ext/say_utf.c +62 -0
- data/ext/say_vertex_type.c +113 -0
- data/ext/say_vertex_type.h +40 -0
- data/ext/say_vfile.c +57 -0
- data/ext/say_view.c +150 -0
- data/ext/say_view.h +44 -0
- data/ext/say_win.h +24 -0
- data/ext/say_win_context.h +91 -0
- data/ext/say_win_window.h +670 -0
- data/ext/say_window.c +155 -0
- data/ext/say_window.h +43 -0
- data/ext/say_x11.h +41 -0
- data/ext/say_x11_context.h +96 -0
- data/ext/say_x11_window.h +818 -0
- data/ext/shader.c +302 -0
- data/ext/sound.c +118 -0
- data/ext/sound_buffer.c +75 -0
- data/ext/sprite.c +241 -0
- data/ext/stb_image.h +4971 -0
- data/ext/stb_image_write.h +511 -0
- data/ext/target.c +184 -0
- data/ext/text.c +162 -0
- data/ext/utils.c +10 -0
- data/ext/vector.c +261 -0
- data/ext/vendor/freetype/bin/freetype6.dll +0 -0
- data/ext/vendor/freetype/bin/zlib1.dll +0 -0
- data/ext/vendor/freetype/include/freetype2/freetype/config/ftconfig.h +350 -0
- data/ext/vendor/freetype/include/freetype2/freetype/config/ftheader.h +729 -0
- data/ext/vendor/freetype/include/freetype2/freetype/config/ftmodule.h +22 -0
- data/ext/vendor/freetype/include/freetype2/freetype/config/ftoption.h +695 -0
- data/ext/vendor/freetype/include/freetype2/freetype/config/ftstdlib.h +180 -0
- data/ext/vendor/freetype/include/freetype2/freetype/freetype.h +3434 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftbbox.h +94 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftbdf.h +200 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftbitmap.h +206 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftcache.h +1110 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftchapters.h +100 -0
- data/ext/vendor/freetype/include/freetype2/freetype/fterrdef.h +239 -0
- data/ext/vendor/freetype/include/freetype2/freetype/fterrors.h +206 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftgasp.h +113 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftglyph.h +575 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftgxval.h +358 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftgzip.h +102 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftimage.h +1237 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftincrem.h +331 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftlcdfil.h +166 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftlist.h +273 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftlzw.h +99 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftmac.h +272 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftmm.h +378 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftmodapi.h +406 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftmoderr.h +155 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftotval.h +198 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftoutln.h +526 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftpfr.h +172 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftrender.h +229 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftsizes.h +159 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftsnames.h +170 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftstroke.h +716 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftsynth.h +73 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftsystem.h +346 -0
- data/ext/vendor/freetype/include/freetype2/freetype/fttrigon.h +350 -0
- data/ext/vendor/freetype/include/freetype2/freetype/fttypes.h +583 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftwinfnt.h +263 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ftxf86.h +80 -0
- data/ext/vendor/freetype/include/freetype2/freetype/t1tables.h +450 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ttnameid.h +1132 -0
- data/ext/vendor/freetype/include/freetype2/freetype/tttables.h +756 -0
- data/ext/vendor/freetype/include/freetype2/freetype/tttags.h +99 -0
- data/ext/vendor/freetype/include/freetype2/freetype/ttunpat.h +59 -0
- data/ext/vendor/freetype/include/ft2build.h +61 -0
- data/ext/vendor/freetype/lib/freetype-bcc.lib +0 -0
- data/ext/vendor/freetype/lib/freetype6.def +249 -0
- data/ext/vendor/freetype/lib/libfreetype.dll.a +0 -0
- data/ext/vendor/freetype/lib/tmp.freetype.lib +0 -0
- data/ext/vendor/glew/LICENSE.txt +73 -0
- data/ext/vendor/glew/README.txt +18 -0
- data/ext/vendor/glew/include/GL/glew.h +15507 -0
- data/ext/vendor/glew/include/GL/glxew.h +1568 -0
- data/ext/vendor/glew/include/GL/wglew.h +1361 -0
- data/ext/vendor/glew/lib/glew32.dll +0 -0
- data/ext/vendor/glew/lib/glew32mx.dll +0 -0
- data/ext/vendor/glew/lib/libglew32.a +0 -0
- data/ext/vendor/glew/lib/libglew32.dll.a +0 -0
- data/ext/vendor/glew/lib/libglew32mx.a +0 -0
- data/ext/vendor/glew/lib/libglew32mx.dll.a +0 -0
- data/ext/vendor/openal/COPYING +484 -0
- data/ext/vendor/openal/Win32/soft_oal.dll +0 -0
- data/ext/vendor/openal/include/AL/al.h +724 -0
- data/ext/vendor/openal/include/AL/alc.h +277 -0
- data/ext/vendor/openal/include/AL/alext.h +165 -0
- data/ext/vendor/openal/include/AL/efx-creative.h +3 -0
- data/ext/vendor/openal/include/AL/efx.h +758 -0
- data/ext/vendor/openal/lib/libOpenAL32.dll.a +0 -0
- data/ext/vendor/sndfile/bin/libsndfile-1.dll +0 -0
- data/ext/vendor/sndfile/include/sndfile.h +666 -0
- data/ext/vendor/sndfile/include/sndfile.hh +422 -0
- data/ext/vendor/sndfile/lib/libsndfile-1.def +41 -0
- data/ext/vendor/sndfile/lib/libsndfile-1.lib +0 -0
- data/ext/vertex.c +96 -0
- data/ext/view.c +131 -0
- data/ext/window.c +183 -0
- data/lib/ray/animation.rb +248 -0
- data/lib/ray/animation/block_animation.rb +36 -0
- data/lib/ray/animation/circular_motion.rb +57 -0
- data/lib/ray/animation/color_variation.rb +102 -0
- data/lib/ray/animation/combination.rb +71 -0
- data/lib/ray/animation/float_variation.rb +76 -0
- data/lib/ray/animation/sequence.rb +65 -0
- data/lib/ray/animation/sprite_animation.rb +68 -0
- data/lib/ray/animation/vector_variation.rb +111 -0
- data/lib/ray/animation_list.rb +50 -0
- data/lib/ray/audio.rb +4 -7
- data/lib/ray/buffer_renderer.rb +9 -0
- data/lib/ray/color.rb +41 -6
- data/lib/ray/drawable.rb +34 -9
- data/lib/ray/dsl.rb +6 -0
- data/lib/ray/dsl/event.rb +1 -1
- data/lib/ray/dsl/event_listener.rb +14 -10
- data/lib/ray/dsl/event_raiser.rb +5 -2
- data/lib/ray/dsl/event_runner.rb +4 -10
- data/lib/ray/dsl/event_translator.rb +67 -99
- data/lib/ray/dsl/handler.rb +1 -1
- data/lib/ray/dsl/matcher.rb +40 -27
- data/lib/ray/event.rb +22 -0
- data/lib/ray/font.rb +0 -42
- data/lib/ray/font_set.rb +3 -7
- data/lib/ray/game.rb +33 -73
- data/lib/ray/gl/int_array.rb +24 -0
- data/lib/ray/gl/vertex.rb +106 -0
- data/lib/ray/helper.rb +25 -11
- data/lib/ray/image.rb +9 -154
- data/lib/ray/image_set.rb +3 -8
- data/lib/ray/image_target.rb +12 -0
- data/lib/ray/matrix.rb +90 -0
- data/lib/ray/music.rb +12 -0
- data/lib/ray/polygon.rb +77 -0
- data/lib/ray/ray.rb +45 -13
- data/lib/ray/rect.rb +14 -3
- data/lib/ray/resource_set.rb +18 -35
- data/lib/ray/scene.rb +43 -81
- data/lib/ray/scene_list.rb +12 -5
- data/lib/ray/shader.rb +82 -0
- data/lib/ray/sound.rb +18 -0
- data/lib/ray/sound_buffer.rb +6 -0
- data/lib/ray/sound_buffer_set.rb +32 -0
- data/lib/ray/sprite.rb +111 -97
- data/lib/ray/target.rb +18 -0
- data/lib/ray/text.rb +80 -58
- data/lib/ray/text_helper.rb +21 -27
- data/lib/ray/turtle.rb +49 -38
- data/lib/ray/vector.rb +76 -1
- data/lib/ray/vertex.rb +24 -0
- data/lib/ray/view.rb +47 -0
- data/lib/ray/window.rb +23 -0
- data/samples/_media/Beep.wav +0 -0
- data/samples/_media/CptnRuby Gem.png +0 -0
- data/samples/_media/CptnRuby Map.txt +25 -0
- data/samples/_media/CptnRuby Tileset.png +0 -0
- data/samples/_media/CptnRuby.png +0 -0
- data/samples/_media/Space.png +0 -0
- data/samples/_media/Star.png +0 -0
- data/samples/_media/Starfighter.png +0 -0
- data/samples/animation/chain.rb +33 -0
- data/samples/animation/circle.rb +38 -0
- data/samples/animation/color.rb +18 -0
- data/samples/animation/rotation.rb +17 -0
- data/samples/animation/sequence.rb +33 -0
- data/samples/animation/shader.rb +65 -0
- data/samples/animation/sprite_motion.rb +103 -0
- data/samples/animation/translation.rb +23 -0
- data/samples/audio/spacial.rb +25 -11
- data/samples/buffer/buffer.rb +28 -0
- data/samples/buffer/index_buffer.rb +36 -0
- data/samples/buffer/renderer.rb +27 -0
- data/samples/cptn_ruby/cptn_ruby.rb +279 -0
- data/samples/hello_world/hello.rb +2 -2
- data/samples/hello_world/hello_dsl.rb +3 -3
- data/samples/hello_world/text.rb +2 -2
- data/samples/opengl/cube.rb +124 -0
- data/samples/opengl/image.rb +36 -16
- data/samples/opengl/obj_loader.rb +99 -0
- data/samples/opengl/opengl.rb +24 -18
- data/samples/opengl/shader.rb +36 -26
- data/samples/pong/pong.rb +41 -39
- data/samples/{run_scene.rb → scenes/run_scene.rb} +21 -7
- data/samples/shaders/geometry.rb +98 -0
- data/samples/shaders/scene.rb +19 -12
- data/samples/shaders/shaders.rb +34 -17
- data/samples/shaders/shape.rb +12 -7
- data/samples/sokoban/level_1 +11 -7
- data/samples/sokoban/sokoban.rb +36 -63
- data/samples/starfighter/starfighter.rb +159 -0
- data/samples/test/actual_scene.rb +3 -3
- data/samples/test/scene_riot.rb +4 -4
- data/samples/test/scene_spec.rb +3 -3
- data/samples/test/scene_test_unit.rb +1 -1
- data/samples/turtle/byzantium.rb +10 -5
- data/samples/turtle/hilbert.rb +16 -11
- data/samples/turtle/koch.rb +16 -11
- data/samples/turtle/mandala.rb +43 -38
- data/samples/turtle/tree.rb +13 -8
- data/samples/view/resize.rb +26 -0
- data/samples/view/view.rb +35 -0
- data/samples/window/all_events.rb +44 -0
- data/samples/window/change_title.rb +16 -0
- data/samples/window/fullscreen.rb +18 -0
- data/samples/window/get_pixel.rb +29 -0
- data/samples/window/icon.rb +88 -0
- data/samples/window/input.rb +27 -0
- data/samples/window/no_border.rb +16 -0
- data/samples/window/resize.rb +24 -0
- data/test/animation/color_variation_test.rb +64 -0
- data/test/animation/combination_test.rb +35 -0
- data/test/animation/float_variation_test.rb +75 -0
- data/test/animation/vector_variation_test.rb +123 -0
- data/test/animation_list_test.rb +122 -0
- data/test/animation_test.rb +83 -0
- data/test/audio_test.rb +88 -33
- data/test/buffer_renderer_test.rb +38 -0
- data/test/color_test.rb +31 -22
- data/test/drawable_test.rb +207 -7
- data/test/dsl_test.rb +25 -7
- data/test/font_test.rb +6 -40
- data/test/game_test.rb +76 -0
- data/test/gl_buffer_test.rb +26 -0
- data/test/gl_index_buffer_test.rb +17 -0
- data/test/gl_vertex_test.rb +117 -0
- data/test/helpers.rb +45 -5
- data/test/image_target_test.rb +19 -0
- data/test/image_test.rb +73 -53
- data/test/int_array_test.rb +64 -0
- data/test/matrix_test.rb +134 -0
- data/test/polygon_test.rb +126 -0
- data/test/rect_test.rb +6 -8
- data/test/res/frag.c +14 -0
- data/test/res/frag3d.c +10 -0
- data/test/res/frag_gray.c +17 -0
- data/test/res/frag_light3d.c +20 -0
- data/test/res/light3d.c +20 -0
- data/test/res/sprite.png +0 -0
- data/test/res/teapot.obj +12831 -0
- data/test/res/vert.c +17 -0
- data/test/res/vertex3d.c +14 -0
- data/test/resource_set_test.rb +8 -45
- data/test/run_all.rb +1 -1
- data/test/scene_list_test.rb +79 -0
- data/test/scene_test.rb +168 -0
- data/test/shader_test.rb +58 -0
- data/test/sprite_test.rb +46 -41
- data/test/target_test.rb +34 -0
- data/test/text_test.rb +20 -31
- data/test/turtle_test.rb +35 -20
- data/test/vector_test.rb +61 -19
- data/test/vertex_test.rb +43 -0
- data/test/view_test.rb +61 -0
- metadata +347 -126
- data/.yardopts +0 -4
- data/VERSION +0 -1
- data/ext/audio.cpp +0 -723
- data/ext/color.cpp +0 -159
- data/ext/drawable.cpp +0 -91
- data/ext/event.cpp +0 -460
- data/ext/font.cpp +0 -190
- data/ext/image.cpp +0 -733
- data/ext/input.cpp +0 -74
- data/ext/ray.cpp +0 -168
- data/ext/ray.hpp +0 -356
- data/ext/rect.cpp +0 -245
- data/ext/shader.cpp +0 -169
- data/ext/shape.cpp +0 -409
- data/ext/sprite.cpp +0 -306
- data/ext/text.cpp +0 -181
- data/ext/vector.cpp +0 -215
- data/guide.md +0 -619
- data/lib/ray/input.rb +0 -10
- data/lib/ray/music_set.rb +0 -37
- data/lib/ray/rmagick.rb +0 -41
- data/lib/ray/shape.rb +0 -132
- data/lib/ray/sound_set.rb +0 -37
- data/samples/opengl/binding.rb +0 -38
- data/test/ray_test.rb +0 -25
- data/test/shape_test.rb +0 -101
- data/yard_ext.rb +0 -63
@@ -0,0 +1,22 @@
|
|
1
|
+
/* This is a generated file. */
|
2
|
+
FT_USE_MODULE(tt_driver_class)
|
3
|
+
FT_USE_MODULE(t1_driver_class)
|
4
|
+
FT_USE_MODULE(cff_driver_class)
|
5
|
+
FT_USE_MODULE(t1cid_driver_class)
|
6
|
+
FT_USE_MODULE(pfr_driver_class)
|
7
|
+
FT_USE_MODULE(t42_driver_class)
|
8
|
+
FT_USE_MODULE(winfnt_driver_class)
|
9
|
+
FT_USE_MODULE(pcf_driver_class)
|
10
|
+
FT_USE_MODULE(bdf_driver_class)
|
11
|
+
FT_USE_MODULE(sfnt_module_class)
|
12
|
+
FT_USE_MODULE(autofit_module_class)
|
13
|
+
FT_USE_MODULE(pshinter_module_class)
|
14
|
+
FT_USE_MODULE(ft_raster1_renderer_class)
|
15
|
+
FT_USE_MODULE(ft_smooth_renderer_class)
|
16
|
+
FT_USE_MODULE(ft_smooth_lcd_renderer_class)
|
17
|
+
FT_USE_MODULE(ft_smooth_lcdv_renderer_class)
|
18
|
+
FT_USE_MODULE(gxv_module_class)
|
19
|
+
FT_USE_MODULE(otv_module_class)
|
20
|
+
FT_USE_MODULE(psaux_module_class)
|
21
|
+
FT_USE_MODULE(psnames_module_class)
|
22
|
+
/* EOF */
|
@@ -0,0 +1,695 @@
|
|
1
|
+
/***************************************************************************/
|
2
|
+
/* */
|
3
|
+
/* ftoption.h */
|
4
|
+
/* */
|
5
|
+
/* User-selectable configuration macros (specification only). */
|
6
|
+
/* */
|
7
|
+
/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by */
|
8
|
+
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
9
|
+
/* */
|
10
|
+
/* This file is part of the FreeType project, and may only be used, */
|
11
|
+
/* modified, and distributed under the terms of the FreeType project */
|
12
|
+
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
13
|
+
/* this file you indicate that you have read the license and */
|
14
|
+
/* understand and accept it fully. */
|
15
|
+
/* */
|
16
|
+
/***************************************************************************/
|
17
|
+
|
18
|
+
|
19
|
+
#ifndef __FTOPTION_H__
|
20
|
+
#define __FTOPTION_H__
|
21
|
+
|
22
|
+
|
23
|
+
#include <ft2build.h>
|
24
|
+
|
25
|
+
|
26
|
+
FT_BEGIN_HEADER
|
27
|
+
|
28
|
+
/*************************************************************************/
|
29
|
+
/* */
|
30
|
+
/* USER-SELECTABLE CONFIGURATION MACROS */
|
31
|
+
/* */
|
32
|
+
/* This file contains the default configuration macro definitions for */
|
33
|
+
/* a standard build of the FreeType library. There are three ways to */
|
34
|
+
/* use this file to build project-specific versions of the library: */
|
35
|
+
/* */
|
36
|
+
/* - You can modify this file by hand, but this is not recommended in */
|
37
|
+
/* cases where you would like to build several versions of the */
|
38
|
+
/* library from a single source directory. */
|
39
|
+
/* */
|
40
|
+
/* - You can put a copy of this file in your build directory, more */
|
41
|
+
/* precisely in `$BUILD/freetype/config/ftoption.h', where `$BUILD' */
|
42
|
+
/* is the name of a directory that is included _before_ the FreeType */
|
43
|
+
/* include path during compilation. */
|
44
|
+
/* */
|
45
|
+
/* The default FreeType Makefiles and Jamfiles use the build */
|
46
|
+
/* directory `builds/<system>' by default, but you can easily change */
|
47
|
+
/* that for your own projects. */
|
48
|
+
/* */
|
49
|
+
/* - Copy the file <ft2build.h> to `$BUILD/ft2build.h' and modify it */
|
50
|
+
/* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */
|
51
|
+
/* locate this file during the build. For example, */
|
52
|
+
/* */
|
53
|
+
/* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */
|
54
|
+
/* #include <freetype/config/ftheader.h> */
|
55
|
+
/* */
|
56
|
+
/* will use `$BUILD/myftoptions.h' instead of this file for macro */
|
57
|
+
/* definitions. */
|
58
|
+
/* */
|
59
|
+
/* Note also that you can similarly pre-define the macro */
|
60
|
+
/* FT_CONFIG_MODULES_H used to locate the file listing of the modules */
|
61
|
+
/* that are statically linked to the library at compile time. By */
|
62
|
+
/* default, this file is <freetype/config/ftmodule.h>. */
|
63
|
+
/* */
|
64
|
+
/* We highly recommend using the third method whenever possible. */
|
65
|
+
/* */
|
66
|
+
/*************************************************************************/
|
67
|
+
|
68
|
+
|
69
|
+
/*************************************************************************/
|
70
|
+
/*************************************************************************/
|
71
|
+
/**** ****/
|
72
|
+
/**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/
|
73
|
+
/**** ****/
|
74
|
+
/*************************************************************************/
|
75
|
+
/*************************************************************************/
|
76
|
+
|
77
|
+
|
78
|
+
/*************************************************************************/
|
79
|
+
/* */
|
80
|
+
/* Uncomment the line below if you want to activate sub-pixel rendering */
|
81
|
+
/* (a.k.a. LCD rendering, or ClearType) in this build of the library. */
|
82
|
+
/* */
|
83
|
+
/* Note that this feature is covered by several Microsoft patents */
|
84
|
+
/* and should not be activated in any default build of the library. */
|
85
|
+
/* */
|
86
|
+
/* This macro has no impact on the FreeType API, only on its */
|
87
|
+
/* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */
|
88
|
+
/* FT_Render_Glyph still generates a bitmap that is 3 times larger than */
|
89
|
+
/* the original size; the difference will be that each triplet of */
|
90
|
+
/* subpixels has R=G=B. */
|
91
|
+
/* */
|
92
|
+
/* This is done to allow FreeType clients to run unmodified, forcing */
|
93
|
+
/* them to display normal gray-level anti-aliased glyphs. */
|
94
|
+
/* */
|
95
|
+
#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
|
96
|
+
|
97
|
+
|
98
|
+
/*************************************************************************/
|
99
|
+
/* */
|
100
|
+
/* Many compilers provide a non-ANSI 64-bit data type that can be used */
|
101
|
+
/* by FreeType to speed up some computations. However, this will create */
|
102
|
+
/* some problems when compiling the library in strict ANSI mode. */
|
103
|
+
/* */
|
104
|
+
/* For this reason, the use of 64-bit integers is normally disabled when */
|
105
|
+
/* the __STDC__ macro is defined. You can however disable this by */
|
106
|
+
/* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */
|
107
|
+
/* */
|
108
|
+
/* For most compilers, this will only create compilation warnings when */
|
109
|
+
/* building the library. */
|
110
|
+
/* */
|
111
|
+
/* ObNote: The compiler-specific 64-bit integers are detected in the */
|
112
|
+
/* file `ftconfig.h' either statically or through the */
|
113
|
+
/* `configure' script on supported platforms. */
|
114
|
+
/* */
|
115
|
+
#undef FT_CONFIG_OPTION_FORCE_INT64
|
116
|
+
|
117
|
+
|
118
|
+
/*************************************************************************/
|
119
|
+
/* */
|
120
|
+
/* LZW-compressed file support. */
|
121
|
+
/* */
|
122
|
+
/* FreeType now handles font files that have been compressed with the */
|
123
|
+
/* `compress' program. This is mostly used to parse many of the PCF */
|
124
|
+
/* files that come with various X11 distributions. The implementation */
|
125
|
+
/* uses NetBSD's `zopen' to partially uncompress the file on the fly */
|
126
|
+
/* (see src/lzw/ftgzip.c). */
|
127
|
+
/* */
|
128
|
+
/* Define this macro if you want to enable this `feature'. */
|
129
|
+
/* */
|
130
|
+
#define FT_CONFIG_OPTION_USE_LZW
|
131
|
+
|
132
|
+
|
133
|
+
/*************************************************************************/
|
134
|
+
/* */
|
135
|
+
/* Gzip-compressed file support. */
|
136
|
+
/* */
|
137
|
+
/* FreeType now handles font files that have been compressed with the */
|
138
|
+
/* `gzip' program. This is mostly used to parse many of the PCF files */
|
139
|
+
/* that come with XFree86. The implementation uses `zlib' to */
|
140
|
+
/* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */
|
141
|
+
/* */
|
142
|
+
/* Define this macro if you want to enable this `feature'. See also */
|
143
|
+
/* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */
|
144
|
+
/* */
|
145
|
+
#define FT_CONFIG_OPTION_USE_ZLIB
|
146
|
+
|
147
|
+
|
148
|
+
/*************************************************************************/
|
149
|
+
/* */
|
150
|
+
/* ZLib library selection */
|
151
|
+
/* */
|
152
|
+
/* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */
|
153
|
+
/* It allows FreeType's `ftgzip' component to link to the system's */
|
154
|
+
/* installation of the ZLib library. This is useful on systems like */
|
155
|
+
/* Unix or VMS where it generally is already available. */
|
156
|
+
/* */
|
157
|
+
/* If you let it undefined, the component will use its own copy */
|
158
|
+
/* of the zlib sources instead. These have been modified to be */
|
159
|
+
/* included directly within the component and *not* export external */
|
160
|
+
/* function names. This allows you to link any program with FreeType */
|
161
|
+
/* _and_ ZLib without linking conflicts. */
|
162
|
+
/* */
|
163
|
+
/* Do not #undef this macro here since the build system might define */
|
164
|
+
/* it for certain configurations only. */
|
165
|
+
/* */
|
166
|
+
/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
|
167
|
+
|
168
|
+
|
169
|
+
/*************************************************************************/
|
170
|
+
/* */
|
171
|
+
/* DLL export compilation */
|
172
|
+
/* */
|
173
|
+
/* When compiling FreeType as a DLL, some systems/compilers need a */
|
174
|
+
/* special keyword in front OR after the return type of function */
|
175
|
+
/* declarations. */
|
176
|
+
/* */
|
177
|
+
/* Two macros are used within the FreeType source code to define */
|
178
|
+
/* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */
|
179
|
+
/* */
|
180
|
+
/* FT_EXPORT( return_type ) */
|
181
|
+
/* */
|
182
|
+
/* is used in a function declaration, as in */
|
183
|
+
/* */
|
184
|
+
/* FT_EXPORT( FT_Error ) */
|
185
|
+
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
186
|
+
/* */
|
187
|
+
/* */
|
188
|
+
/* FT_EXPORT_DEF( return_type ) */
|
189
|
+
/* */
|
190
|
+
/* is used in a function definition, as in */
|
191
|
+
/* */
|
192
|
+
/* FT_EXPORT_DEF( FT_Error ) */
|
193
|
+
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
194
|
+
/* { */
|
195
|
+
/* ... some code ... */
|
196
|
+
/* return FT_Err_Ok; */
|
197
|
+
/* } */
|
198
|
+
/* */
|
199
|
+
/* You can provide your own implementation of FT_EXPORT and */
|
200
|
+
/* FT_EXPORT_DEF here if you want. If you leave them undefined, they */
|
201
|
+
/* will be later automatically defined as `extern return_type' to */
|
202
|
+
/* allow normal compilation. */
|
203
|
+
/* */
|
204
|
+
/* Do not #undef these macros here since the build system might define */
|
205
|
+
/* them for certain configurations only. */
|
206
|
+
/* */
|
207
|
+
/* #define FT_EXPORT(x) extern x */
|
208
|
+
/* #define FT_EXPORT_DEF(x) x */
|
209
|
+
#ifndef __GNUC__
|
210
|
+
# define __DLL_IMPORT__ __declspec(dllimport)
|
211
|
+
# define __DLL_EXPORT__ __declspec(dllexport)
|
212
|
+
#else
|
213
|
+
# define __DLL_IMPORT__ __attribute__((dllimport)) extern
|
214
|
+
# define __DLL_EXPORT__ __attribute__((dllexport)) extern
|
215
|
+
#endif
|
216
|
+
|
217
|
+
#if (defined __WIN32__) || (defined _WIN32)
|
218
|
+
# ifdef BUILD_FREETYPE2_DLL
|
219
|
+
# define FREETYPE2_DLL_IMPEXP __DLL_EXPORT__
|
220
|
+
# elif defined(FREETYPE2_STATIC)
|
221
|
+
# define FREETYPE2_DLL_IMPEXP
|
222
|
+
# elif defined (USE_FREETYPE2_DLL)
|
223
|
+
# define FREETYPE2_DLL_IMPEXP __DLL_IMPORT__
|
224
|
+
# elif defined (USE_FREETYPE2_STATIC)
|
225
|
+
# define FREETYPE2_DLL_IMPEXP
|
226
|
+
# else /* assume USE_FREETYPE2_DLL */
|
227
|
+
# define FREETYPE2_DLL_IMPEXP __DLL_IMPORT__
|
228
|
+
# endif
|
229
|
+
#else /* __WIN32__ */
|
230
|
+
# define FREETYPE2_DLL_IMPEXP
|
231
|
+
#endif
|
232
|
+
|
233
|
+
#define FT_EXPORT(x) FREETYPE2_DLL_IMPEXP x
|
234
|
+
#define FT_BASE(x) FREETYPE2_DLL_IMPEXP x
|
235
|
+
|
236
|
+
|
237
|
+
/*************************************************************************/
|
238
|
+
/* */
|
239
|
+
/* Glyph Postscript Names handling */
|
240
|
+
/* */
|
241
|
+
/* By default, FreeType 2 is compiled with the `PSNames' module. This */
|
242
|
+
/* module is in charge of converting a glyph name string into a */
|
243
|
+
/* Unicode value, or return a Macintosh standard glyph name for the */
|
244
|
+
/* use with the TrueType `post' table. */
|
245
|
+
/* */
|
246
|
+
/* Undefine this macro if you do not want `PSNames' compiled in your */
|
247
|
+
/* build of FreeType. This has the following effects: */
|
248
|
+
/* */
|
249
|
+
/* - The TrueType driver will provide its own set of glyph names, */
|
250
|
+
/* if you build it to support postscript names in the TrueType */
|
251
|
+
/* `post' table. */
|
252
|
+
/* */
|
253
|
+
/* - The Type 1 driver will not be able to synthetize a Unicode */
|
254
|
+
/* charmap out of the glyphs found in the fonts. */
|
255
|
+
/* */
|
256
|
+
/* You would normally undefine this configuration macro when building */
|
257
|
+
/* a version of FreeType that doesn't contain a Type 1 or CFF driver. */
|
258
|
+
/* */
|
259
|
+
#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES
|
260
|
+
|
261
|
+
|
262
|
+
/*************************************************************************/
|
263
|
+
/* */
|
264
|
+
/* Postscript Names to Unicode Values support */
|
265
|
+
/* */
|
266
|
+
/* By default, FreeType 2 is built with the `PSNames' module compiled */
|
267
|
+
/* in. Among other things, the module is used to convert a glyph name */
|
268
|
+
/* into a Unicode value. This is especially useful in order to */
|
269
|
+
/* synthetize on the fly a Unicode charmap from the CFF/Type 1 driver */
|
270
|
+
/* through a big table named the `Adobe Glyph List' (AGL). */
|
271
|
+
/* */
|
272
|
+
/* Undefine this macro if you do not want the Adobe Glyph List */
|
273
|
+
/* compiled in your `PSNames' module. The Type 1 driver will not be */
|
274
|
+
/* able to synthetize a Unicode charmap out of the glyphs found in the */
|
275
|
+
/* fonts. */
|
276
|
+
/* */
|
277
|
+
#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
|
278
|
+
|
279
|
+
|
280
|
+
/*************************************************************************/
|
281
|
+
/* */
|
282
|
+
/* Support for Mac fonts */
|
283
|
+
/* */
|
284
|
+
/* Define this macro if you want support for outline fonts in Mac */
|
285
|
+
/* format (mac dfont, mac resource, macbinary containing a mac */
|
286
|
+
/* resource) on non-Mac platforms. */
|
287
|
+
/* */
|
288
|
+
/* Note that the `FOND' resource isn't checked. */
|
289
|
+
/* */
|
290
|
+
#define FT_CONFIG_OPTION_MAC_FONTS
|
291
|
+
|
292
|
+
|
293
|
+
/*************************************************************************/
|
294
|
+
/* */
|
295
|
+
/* Guessing methods to access embedded resource forks */
|
296
|
+
/* */
|
297
|
+
/* Enable extra Mac fonts support on non-Mac platforms (e.g. */
|
298
|
+
/* GNU/Linux). */
|
299
|
+
/* */
|
300
|
+
/* Resource forks which include fonts data are stored sometimes in */
|
301
|
+
/* locations which users or developers don't expected. In some cases, */
|
302
|
+
/* resource forks start with some offset from the head of a file. In */
|
303
|
+
/* other cases, the actual resource fork is stored in file different */
|
304
|
+
/* from what the user specifies. If this option is activated, */
|
305
|
+
/* FreeType tries to guess whether such offsets or different file */
|
306
|
+
/* names must be used. */
|
307
|
+
/* */
|
308
|
+
/* Note that normal, direct access of resource forks is controlled via */
|
309
|
+
/* the FT_CONFIG_OPTION_MAC_FONTS option. */
|
310
|
+
/* */
|
311
|
+
#ifdef FT_CONFIG_OPTION_MAC_FONTS
|
312
|
+
#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
|
313
|
+
#endif
|
314
|
+
|
315
|
+
|
316
|
+
/*************************************************************************/
|
317
|
+
/* */
|
318
|
+
/* Allow the use of FT_Incremental_Interface to load typefaces that */
|
319
|
+
/* contain no glyph data, but supply it via a callback function. */
|
320
|
+
/* This allows FreeType to be used with the PostScript language, using */
|
321
|
+
/* the GhostScript interpreter. */
|
322
|
+
/* */
|
323
|
+
/* #define FT_CONFIG_OPTION_INCREMENTAL */
|
324
|
+
|
325
|
+
|
326
|
+
/*************************************************************************/
|
327
|
+
/* */
|
328
|
+
/* The size in bytes of the render pool used by the scan-line converter */
|
329
|
+
/* to do all of its work. */
|
330
|
+
/* */
|
331
|
+
/* This must be greater than 4KByte if you use FreeType to rasterize */
|
332
|
+
/* glyphs; otherwise, you may set it to zero to avoid unnecessary */
|
333
|
+
/* allocation of the render pool. */
|
334
|
+
/* */
|
335
|
+
#define FT_RENDER_POOL_SIZE 16384L
|
336
|
+
|
337
|
+
|
338
|
+
/*************************************************************************/
|
339
|
+
/* */
|
340
|
+
/* FT_MAX_MODULES */
|
341
|
+
/* */
|
342
|
+
/* The maximum number of modules that can be registered in a single */
|
343
|
+
/* FreeType library object. 32 is the default. */
|
344
|
+
/* */
|
345
|
+
#define FT_MAX_MODULES 32
|
346
|
+
|
347
|
+
|
348
|
+
/*************************************************************************/
|
349
|
+
/* */
|
350
|
+
/* Debug level */
|
351
|
+
/* */
|
352
|
+
/* FreeType can be compiled in debug or trace mode. In debug mode, */
|
353
|
+
/* errors are reported through the `ftdebug' component. In trace */
|
354
|
+
/* mode, additional messages are sent to the standard output during */
|
355
|
+
/* execution. */
|
356
|
+
/* */
|
357
|
+
/* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */
|
358
|
+
/* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */
|
359
|
+
/* */
|
360
|
+
/* Don't define any of these macros to compile in `release' mode! */
|
361
|
+
/* */
|
362
|
+
/* Do not #undef these macros here since the build system might define */
|
363
|
+
/* them for certain configurations only. */
|
364
|
+
/* */
|
365
|
+
/* #define FT_DEBUG_LEVEL_ERROR */
|
366
|
+
/* #define FT_DEBUG_LEVEL_TRACE */
|
367
|
+
|
368
|
+
|
369
|
+
/*************************************************************************/
|
370
|
+
/* */
|
371
|
+
/* Memory Debugging */
|
372
|
+
/* */
|
373
|
+
/* FreeType now comes with an integrated memory debugger that is */
|
374
|
+
/* capable of detecting simple errors like memory leaks or double */
|
375
|
+
/* deletes. To compile it within your build of the library, you */
|
376
|
+
/* should define FT_DEBUG_MEMORY here. */
|
377
|
+
/* */
|
378
|
+
/* Note that the memory debugger is only activated at runtime when */
|
379
|
+
/* when the _environment_ variable `FT2_DEBUG_MEMORY' is defined also! */
|
380
|
+
/* */
|
381
|
+
/* Do not #undef this macro here since the build system might define */
|
382
|
+
/* it for certain configurations only. */
|
383
|
+
/* */
|
384
|
+
/* #define FT_DEBUG_MEMORY */
|
385
|
+
|
386
|
+
|
387
|
+
/*************************************************************************/
|
388
|
+
/* */
|
389
|
+
/* Module errors */
|
390
|
+
/* */
|
391
|
+
/* If this macro is set (which is _not_ the default), the higher byte */
|
392
|
+
/* of an error code gives the module in which the error has occurred, */
|
393
|
+
/* while the lower byte is the real error code. */
|
394
|
+
/* */
|
395
|
+
/* Setting this macro makes sense for debugging purposes only, since */
|
396
|
+
/* it would break source compatibility of certain programs that use */
|
397
|
+
/* FreeType 2. */
|
398
|
+
/* */
|
399
|
+
/* More details can be found in the files ftmoderr.h and fterrors.h. */
|
400
|
+
/* */
|
401
|
+
#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
/*************************************************************************/
|
406
|
+
/*************************************************************************/
|
407
|
+
/**** ****/
|
408
|
+
/**** S F N T D R I V E R C O N F I G U R A T I O N ****/
|
409
|
+
/**** ****/
|
410
|
+
/*************************************************************************/
|
411
|
+
/*************************************************************************/
|
412
|
+
|
413
|
+
|
414
|
+
/*************************************************************************/
|
415
|
+
/* */
|
416
|
+
/* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */
|
417
|
+
/* embedded bitmaps in all formats using the SFNT module (namely */
|
418
|
+
/* TrueType & OpenType). */
|
419
|
+
/* */
|
420
|
+
#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS
|
421
|
+
|
422
|
+
|
423
|
+
/*************************************************************************/
|
424
|
+
/* */
|
425
|
+
/* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */
|
426
|
+
/* load and enumerate the glyph Postscript names in a TrueType or */
|
427
|
+
/* OpenType file. */
|
428
|
+
/* */
|
429
|
+
/* Note that when you do not compile the `PSNames' module by undefining */
|
430
|
+
/* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */
|
431
|
+
/* contain additional code used to read the PS Names table from a font. */
|
432
|
+
/* */
|
433
|
+
/* (By default, the module uses `PSNames' to extract glyph names.) */
|
434
|
+
/* */
|
435
|
+
#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES
|
436
|
+
|
437
|
+
|
438
|
+
/*************************************************************************/
|
439
|
+
/* */
|
440
|
+
/* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */
|
441
|
+
/* access the internal name table in a SFNT-based format like TrueType */
|
442
|
+
/* or OpenType. The name table contains various strings used to */
|
443
|
+
/* describe the font, like family name, copyright, version, etc. It */
|
444
|
+
/* does not contain any glyph name though. */
|
445
|
+
/* */
|
446
|
+
/* Accessing SFNT names is done through the functions declared in */
|
447
|
+
/* `freetype/ftnames.h'. */
|
448
|
+
/* */
|
449
|
+
#define TT_CONFIG_OPTION_SFNT_NAMES
|
450
|
+
|
451
|
+
|
452
|
+
/*************************************************************************/
|
453
|
+
/* */
|
454
|
+
/* TrueType CMap support */
|
455
|
+
/* */
|
456
|
+
/* Here you can fine-tune which TrueType CMap table format shall be */
|
457
|
+
/* supported. */
|
458
|
+
#define TT_CONFIG_CMAP_FORMAT_0
|
459
|
+
#define TT_CONFIG_CMAP_FORMAT_2
|
460
|
+
#define TT_CONFIG_CMAP_FORMAT_4
|
461
|
+
#define TT_CONFIG_CMAP_FORMAT_6
|
462
|
+
#define TT_CONFIG_CMAP_FORMAT_8
|
463
|
+
#define TT_CONFIG_CMAP_FORMAT_10
|
464
|
+
#define TT_CONFIG_CMAP_FORMAT_12
|
465
|
+
|
466
|
+
|
467
|
+
/*************************************************************************/
|
468
|
+
/*************************************************************************/
|
469
|
+
/**** ****/
|
470
|
+
/**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/
|
471
|
+
/**** ****/
|
472
|
+
/*************************************************************************/
|
473
|
+
/*************************************************************************/
|
474
|
+
|
475
|
+
/*************************************************************************/
|
476
|
+
/* */
|
477
|
+
/* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */
|
478
|
+
/* a bytecode interpreter in the TrueType driver. Note that there are */
|
479
|
+
/* important patent issues related to the use of the interpreter. */
|
480
|
+
/* */
|
481
|
+
/* By undefining this, you will only compile the code necessary to load */
|
482
|
+
/* TrueType glyphs without hinting. */
|
483
|
+
/* */
|
484
|
+
/* Do not #undef this macro here, since the build system might */
|
485
|
+
/* define it for certain configurations only. */
|
486
|
+
/* */
|
487
|
+
/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
|
488
|
+
|
489
|
+
|
490
|
+
/*************************************************************************/
|
491
|
+
/* */
|
492
|
+
/* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */
|
493
|
+
/* of the TrueType bytecode interpreter is used that doesn't implement */
|
494
|
+
/* any of the patented opcodes and algorithms. Note that the */
|
495
|
+
/* the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you */
|
496
|
+
/* define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; with other words, */
|
497
|
+
/* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */
|
498
|
+
/* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */
|
499
|
+
/* */
|
500
|
+
/* This macro is only useful for a small number of font files (mostly */
|
501
|
+
/* for Asian scripts) that require bytecode interpretation to properly */
|
502
|
+
/* load glyphs. For all other fonts, this produces unpleasant results, */
|
503
|
+
/* thus the unpatented interpreter is never used to load glyphs from */
|
504
|
+
/* TrueType fonts unless one of the following two options is used. */
|
505
|
+
/* */
|
506
|
+
/* - The unpatented interpreter is explicitly activated by the user */
|
507
|
+
/* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */
|
508
|
+
/* when opening the FT_Face. */
|
509
|
+
/* */
|
510
|
+
/* - FreeType detects that the FT_Face corresponds to one of the */
|
511
|
+
/* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */
|
512
|
+
/* contains a hard-coded list of font names and other matching */
|
513
|
+
/* parameters (see function `tt_face_init' in file */
|
514
|
+
/* `src/truetype/ttobjs.c'). */
|
515
|
+
/* */
|
516
|
+
/* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */
|
517
|
+
/* */
|
518
|
+
/* { */
|
519
|
+
/* FT_Parameter parameter; */
|
520
|
+
/* FT_Open_Args open_args; */
|
521
|
+
/* */
|
522
|
+
/* */
|
523
|
+
/* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */
|
524
|
+
/* */
|
525
|
+
/* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */
|
526
|
+
/* open_args.pathname = my_font_pathname; */
|
527
|
+
/* open_args.num_params = 1; */
|
528
|
+
/* open_args.params = ¶meter; */
|
529
|
+
/* */
|
530
|
+
/* error = FT_Open_Face( library, &open_args, index, &face ); */
|
531
|
+
/* ... */
|
532
|
+
/* } */
|
533
|
+
/* */
|
534
|
+
#define TT_CONFIG_OPTION_UNPATENTED_HINTING
|
535
|
+
|
536
|
+
|
537
|
+
/*************************************************************************/
|
538
|
+
/* */
|
539
|
+
/* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */
|
540
|
+
/* bytecode interpreter with a huge switch statement, rather than a call */
|
541
|
+
/* table. This results in smaller and faster code for a number of */
|
542
|
+
/* architectures. */
|
543
|
+
/* */
|
544
|
+
/* Note however that on some compiler/processor combinations, undefining */
|
545
|
+
/* this macro will generate faster, though larger, code. */
|
546
|
+
/* */
|
547
|
+
#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
|
548
|
+
|
549
|
+
|
550
|
+
/*************************************************************************/
|
551
|
+
/* */
|
552
|
+
/* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */
|
553
|
+
/* TrueType glyph loader to use Apple's definition of how to handle */
|
554
|
+
/* component offsets in composite glyphs. */
|
555
|
+
/* */
|
556
|
+
/* Apple and MS disagree on the default behavior of component offsets */
|
557
|
+
/* in composites. Apple says that they should be scaled by the scaling */
|
558
|
+
/* factors in the transformation matrix (roughly, it's more complex) */
|
559
|
+
/* while MS says they should not. OpenType defines two bits in the */
|
560
|
+
/* composite flags array which can be used to disambiguate, but old */
|
561
|
+
/* fonts will not have them. */
|
562
|
+
/* */
|
563
|
+
/* http://partners.adobe.com/asn/developer/opentype/glyf.html */
|
564
|
+
/* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */
|
565
|
+
/* */
|
566
|
+
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
|
567
|
+
|
568
|
+
|
569
|
+
/*************************************************************************/
|
570
|
+
/* */
|
571
|
+
/* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include */
|
572
|
+
/* support for Apple's distortable font technology (fvar, gvar, cvar, */
|
573
|
+
/* and avar tables). This has many similarities to Type 1 Multiple */
|
574
|
+
/* Masters support. */
|
575
|
+
/* */
|
576
|
+
#define TT_CONFIG_OPTION_GX_VAR_SUPPORT
|
577
|
+
|
578
|
+
|
579
|
+
/*************************************************************************/
|
580
|
+
/* */
|
581
|
+
/* Define TT_CONFIG_OPTION_BDF if you want to include support for */
|
582
|
+
/* an embedded `BDF ' table within SFNT-based bitmap formats. */
|
583
|
+
/* */
|
584
|
+
#define TT_CONFIG_OPTION_BDF
|
585
|
+
|
586
|
+
|
587
|
+
/*************************************************************************/
|
588
|
+
/*************************************************************************/
|
589
|
+
/**** ****/
|
590
|
+
/**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/
|
591
|
+
/**** ****/
|
592
|
+
/*************************************************************************/
|
593
|
+
/*************************************************************************/
|
594
|
+
|
595
|
+
|
596
|
+
/*************************************************************************/
|
597
|
+
/* */
|
598
|
+
/* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and */
|
599
|
+
/* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */
|
600
|
+
/* required. */
|
601
|
+
/* */
|
602
|
+
#define T1_MAX_DICT_DEPTH 5
|
603
|
+
|
604
|
+
|
605
|
+
/*************************************************************************/
|
606
|
+
/* */
|
607
|
+
/* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */
|
608
|
+
/* calls during glyph loading. */
|
609
|
+
/* */
|
610
|
+
#define T1_MAX_SUBRS_CALLS 16
|
611
|
+
|
612
|
+
|
613
|
+
/*************************************************************************/
|
614
|
+
/* */
|
615
|
+
/* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */
|
616
|
+
/* minimum of 16 is required. */
|
617
|
+
/* */
|
618
|
+
/* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */
|
619
|
+
/* */
|
620
|
+
#define T1_MAX_CHARSTRINGS_OPERANDS 256
|
621
|
+
|
622
|
+
|
623
|
+
/*************************************************************************/
|
624
|
+
/* */
|
625
|
+
/* Define this configuration macro if you want to prevent the */
|
626
|
+
/* compilation of `t1afm', which is in charge of reading Type 1 AFM */
|
627
|
+
/* files into an existing face. Note that if set, the T1 driver will be */
|
628
|
+
/* unable to produce kerning distances. */
|
629
|
+
/* */
|
630
|
+
#undef T1_CONFIG_OPTION_NO_AFM
|
631
|
+
|
632
|
+
|
633
|
+
/*************************************************************************/
|
634
|
+
/* */
|
635
|
+
/* Define this configuration macro if you want to prevent the */
|
636
|
+
/* compilation of the Multiple Masters font support in the Type 1 */
|
637
|
+
/* driver. */
|
638
|
+
/* */
|
639
|
+
#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
|
640
|
+
|
641
|
+
|
642
|
+
/*************************************************************************/
|
643
|
+
/*************************************************************************/
|
644
|
+
/**** ****/
|
645
|
+
/**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/
|
646
|
+
/**** ****/
|
647
|
+
/*************************************************************************/
|
648
|
+
/*************************************************************************/
|
649
|
+
|
650
|
+
|
651
|
+
/*************************************************************************/
|
652
|
+
/* */
|
653
|
+
/* Compile autofit module with CJK script support. */
|
654
|
+
/* */
|
655
|
+
#define AF_CONFIG_OPTION_CJK
|
656
|
+
|
657
|
+
/*************************************************************************/
|
658
|
+
/* */
|
659
|
+
/* Compile autofit module with Indic script support. */
|
660
|
+
/* */
|
661
|
+
#define AF_CONFIG_OPTION_INDIC
|
662
|
+
|
663
|
+
/* */
|
664
|
+
|
665
|
+
|
666
|
+
/*
|
667
|
+
* Define this variable if you want to keep the layout of internal
|
668
|
+
* structures that was used prior to FreeType 2.2. This also compiles in
|
669
|
+
* a few obsolete functions to avoid linking problems on typical Unix
|
670
|
+
* distributions.
|
671
|
+
*
|
672
|
+
* For embedded systems or building a new distribution from scratch, it
|
673
|
+
* is recommended to disable the macro since it reduces the library's code
|
674
|
+
* size and activates a few memory-saving optimizations as well.
|
675
|
+
*/
|
676
|
+
/* #define FT_CONFIG_OPTION_OLD_INTERNALS */
|
677
|
+
|
678
|
+
|
679
|
+
/*
|
680
|
+
* This variable is defined if either unpatented or native TrueType
|
681
|
+
* hinting is requested by the definitions above.
|
682
|
+
*/
|
683
|
+
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
|
684
|
+
#define TT_USE_BYTECODE_INTERPRETER
|
685
|
+
#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING
|
686
|
+
#define TT_USE_BYTECODE_INTERPRETER
|
687
|
+
#endif
|
688
|
+
|
689
|
+
FT_END_HEADER
|
690
|
+
|
691
|
+
|
692
|
+
#endif /* __FTOPTION_H__ */
|
693
|
+
|
694
|
+
|
695
|
+
/* END */
|