一些人埋怨 Allegro 创建的可执行文件太大了. 这的确是这样的: 一个简单的 "hello world" 程序就有 200k. 但是不要担心, 就这么个固定的大小了, 不要担心还会把你的程序增加的更大. 像 George Foot 那样, 任何关注程序和库代码间比例的人 都应当多写点程序代码, 让你的代码赶上库的 :-)
说归说, 这儿还是有几件事你可以去做来使你的程序更小点:
DECLARE_GFX_DRIVER_LIST( driver1 driver2 etc... )在 driver 名处可以填这些值:
GFX_DRIVER_VBEAF GFX_DRIVER_VGA GFX_DRIVER_MODEX GFX_DRIVER_VESA3 GFX_DRIVER_VESA2L GFX_DRIVER_VESA2B GFX_DRIVER_XTENDED GFX_DRIVER_VESA1这必须仅包含在你的一个 C 源文件里 (_不是_ 一个头文件). 名字的次序很重要, 因为自动检测例程从上向下搜寻列表直到找到第一个可以支持的模式. 我建议你保留上面缺省的顺序, 然后简单的删掉你不用的部分.
通常, 移去 MODEX 和 XTENED 驱动程序将储存相当大的空间,
而如果你仅仅使用基本的 VGA 模式就可以移去 VESA 和 VBE/AF 驱动程序.
BEGIN_COLOR_DEPTH_LIST depth1 depth2 etc... END_COLOR_DEPTH_LIST在颜色 depth 名处可以是这些值:
COLOR_DEPTH_8 COLOR_DEPTH_15 COLOR_DEPTH_16 COLOR_DEPTH_24 COLOR_DEPTH_32移去任何的颜色深度将节省很多空间, 但不包括 15 和 16 位模式之间: 这些共享了大量的代码, 因此你包含了他们中的一个, 就没有理由使用两个. 注意不要尝试使用表中没有的深度, 你的程序将死掉的!
BEGIN_DIGI_DRIVER_LIST driver1 driver2 etc... END_DIGI_DRIVER_LIST使用的数字声音驱动程序有这些:
DIGI_DRIVER_SOUNDSCAPE DIGI_DRIVER_AUDIODRIVE DIGI_DRIVER_SB对于 MIDI 音乐这样:
BEGIN_MIDI_DRIVER_LIST driver1 driver2 etc... END_MIDI_DRIVER_LIST使用的 MIDI 驱动程序有:
MIDI_DRIVER_AWE32 MIDI_DRIVER_DIGMID MIDI_DRIVER_ADLIB MIDI_DRIVER_MPU MIDI_DRIVER_SB_OUT如果你将使用这两个中的一个, 你必须使用它们两个. 如果你仅仅想包含数字声音驱动程序, 简单的写 DECLARE_MIDI_DRIVER_LIST() 就防止卷入任何的音乐驱动程序了.
BEGIN_JOYSTICK_DRIVER_LIST driver1 driver2 etc... END_JOYSTICK_DRIVER_LIST可以使用的游戏杆驱动程序有这些:
JOYSTICK_DRIVER_STANDARD JOYSTICK_DRIVER_SIDEWINDER JOYSTICK_DRIVER_GAMEPAD_PRO JOYSTICK_DRIVER_SNESPAD JOYSTICK_DRIVER_WINGWARRIOR基本的驱动程序包含了双游戏杆, 增加的按纽, Flightstick Pro, 和 Wingman Extreme 的支持, 因为它们在基本代码上作了非常小的 修改.
#define ALLEGRO_COLOR16 #define ALLEGRO_COLOR24 #define ALLEGRO_COLOR32如果你注释掉这些中的任何定义, 然后重建库, 你将得到得到一个绝对不支持那些颜色深度的库版本, 这要比使用 DECLARE_COLOR_DEPTH_LIST() 宏得到的还要小. 移去 ALLEGRO_COLOR16 的定义将去掉 15 和 16 位高彩模式, 因为它们分享了许多的相同代码.