读我.txt

来自「NEO SDK是一个跨平台的免费开源图形软件开发包。它支持基本绘图、多种格式图形」· 文本 代码 · 共 89 行

TXT
89
字号
插件类别:移植插件 
插件版本:V 0.3 
创建日期:05/09/04
插件描述:
把NEO SDK移植到Allegro上,即对其进行了一次轻量级的封装,
以让Allegro可以直接编译运行NEO程序,由于Allegro是跨平台的——
能在WIN32,DOS,Linux,Mac OS,UNIX,BeOS等众多平台下使用,
所以通过这个插件,将Allegro封装成NEO的形式,从而让NEO也具有
这种跨平台的性能。由于这个版本的插件是在
DEV-CPP(V4.9.8.10) + Allegro(V4.1.13)下开发的,
所以推荐在这个开发环境中使用(下载:http://www.8623.com/tool/DEVCPP.rar)


详细情况:
目前这个插件已经实现了NEO的大部分功能,但尚有未实现的功能——
扩展扩充内存,因为Allegro的实现是在保护模式下,不存在寻址限制
的问题,所以这个功能是不必要的;

光标文件的显示,我将光标显示的代码拷贝进去并修改使之通过编译
但运行时就是不显图片,等有时间了我会查一下具体原因并修正;

音频播放功能,NEO的音频模块实在不太科学,你直接使用Allegro的
音频播放功能吧,哪天心血来潮我可能会将NEO的音频部分移植进来。

对Borland graphics的兼容,种种原因,让我放弃了往这个插件里加入
这个功能,也就是说 define NEO_hi_graphics_h_used 不在有用;


由于一些原因,还修改了一些地方:
为解决与Allegro的命名冲突裁剪函数screen()原型改为n_screen()
淡入函数fade_in()原型改为n_fade_in()
淡出函数fade_out()原型改为n_fade_out()

取消get_vbe_mode(),但为了兼容性仍保留它的原型
取消get_page_num(),保留原型
取消set_display_start(),保留原型
取消set_draw_mode(),保留原型
取消set_dac_size(),保留原型
取消clear_vram_on(),保留原型
取消clear_vram_off(),保留原型
取消change_timer(),保留原型

去掉set_palette_range(),因为 Allegro中存在相同函数
去掉get_palette_range(),理由同上
去掉fade_callback

增加函数BITMAP *work_surface_handle(void),用来返回指向当前工作
页的指针


注意事项:
首选,你的源码扩展名应该是CPP,即C++文件,因为由于NEO与Allegro的
接口风格过于相似,在移植过程中我不得不使用了重载等C++特性,所以要
将你原来的C程序移植过来第一步就是更改扩展名,否则DEV-CPP会将源码
视为C程序编译,这会产生一些错误;

其次,你的main()函数必须要有类型说明符,像void main()或int main()
等等,否则编译器会报警;

再次,你的main()程序之后应该加上宏END_OF_MAIN(),像下面那样:
void main()
{
……
}
END_OF_MAIN();
这个神奇的宏能让你的程序在各种平台下通过编译;

将neo.h拷贝到DEV-CPP的include文件夹下,代码中只要包含neo.h即可:
#include <neo.h>,不需要再包含allegro.h;

你应该用neo_init()来初始化而不是allegro_init();

你应该使用set_vbe_mode()或set_video_mode()来设置分辨率和色深而不是
set_gfx_mode()和set_color_depth(),否则可能导致NEO其它函数无法工作;

正常情况下你可以在程序中混用NEO及Allegro两者的函数;

如果你打算移植你的程序,就请别使用与DOS系统关系密切的函数,
比如int86()等,总之避免使用标准C函数之外的库函数;

如果程序需要键盘操作,请尽量使用NEO的键盘例程而不是具有平台相关性质的
bioskey(),getch()等函数,那样不利于移植;

大部分编译开关都没引入到这个插件,你可以使用,但没有实际作用;

和DOS下的NEO SDK不同,各个分辨率下的可申请最大后台页面数固定为64,
这个数值由宏N_MAX_SURFACE_NUM指定;

                                                 02:20 2006-01-04

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?