AGG绘图库编译方法

长平狐 发布于 2013/12/25 17:25
阅读 273
收藏 0

今天在同事的推荐下,下载了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或者遥感软件的渲染引擎中。




原文链接:http://blog.csdn.net/zhouxuguang236/article/details/9335545
加载中
返回顶部
顶部