AGG绘图库编译方法

来源:互联网 发布:四川大学自考网络班 编辑:程序博客网 时间:2024/05/25 16:37

今天在同事的推荐下,下载了AGG的源代码进行编译,AGG在GIS系统中经常用到,比如mapguide,mapnik等用到了AGG。现在很多导航公司也使用AGG作为地图绘制的引擎。

这个引擎绘制出来的效果非常好,据说还可以反锯齿。抱着好奇的心态就试了一下。

   1、下载源码,去http://www.antigrain.com/download/index.html就可以下载源码包。

2、在VS2008下新建一个win32 静态库工程,加入源码。主要包括一下目录的文件:

  1. ./src/ 目录下所有cpp文件【核心库】*
  2. ./src/ctrl/ 目录下所有cpp文件【控件库】*
  3. ./src/platform/ 下对应平台目录(win32)下的所有cpp文件【平台支持库】*
  4. ./font_freetype/ 下所有的cpp文件【Freetype字体支持库】
  5. ./font_win32_tt/ 下所有的cpp文件【Truetype字体支持库】*
  6. ./gpc/ 下所有的cpp文件【Generic Polygon Clipper裁切库】
3、设置工程的头文件目录,主要包括:

    1. ./include/ *
    2. ./font_freetype/
    3. ./font_win32_tt/ *
    4. ./gpc/
3、编译生成AGG.lib库文件。

4、这么好的东西当然要看一下效果啦,新建一个测试工程。代码如下:
#include "agg_rendering_buffer.h"#include "platform/agg_platform_support.h"#pragma comment(lib,"AGG.lib")class the_application : public agg::platform_support{public:the_application(agg::pix_format_e format,bool flip_y): agg::platform_support(format,flip_y){//}virtual void on_draw(){agg::rendering_buffer &rbuf = rbuf_window();}};int agg_main(int argc, char* argv[]){the_application app(agg::pix_format_bgr24,false);app.caption("hello");if (app.init(600,400,agg::window_resize)){return app.run();}return -1;}

运行出来后就是一个灰色的窗口,宽600像素,高400的一个窗口,这个只是简单尝试,希望以后能用到GIS或者遥感软件的渲染引擎中。



原创粉丝点击