AGG入门(1):VS2013编译agg源码

1.源码下载:http://www.antigrain.com/download/index.html 这里我们下载最新版本agg2.5

2.打开VS2013,新建一个空项目,将下载的agg源码包解压,拷贝以下cpp到VS2013的工程中:

./src/ 目录下所有cpp文件【核心库】*
./src/ctrl/ 目录下所有cpp文件【控件库】*
./src/platform/ 下对应平台目录(win32)下的所有cpp文件【平台支持库】*
./font_freetype/ 下所有的cpp文件【Freetype字体支持库】
./font_win32_tt/ 下所有的cpp文件【Truetype字体支持库】*
./gpc/ 下所有的cpp文件【Generic Polygon Clipper裁切库】

完成大概是这样子的:

3.将./include文件加拷贝到VS2013工程目录中,并在项目包含目录中设置为包含目录

4.设置VS2013编译器,win32平台,多字节字符集,使用静态库。

5.编译,会出现找不到ft2build.h头文件。所以,去下载freetype字体库:
https://sourceforge.net/projects/freetype/files/freetype2/2.7.1/

下载好之后,将解压后的文件夹下include文件夹中的一个文件夹和一个.h文件拷贝到刚才配置的agg的include文件夹中,如下图所示:

下面编写测试代码:

转自:http://www.cppblog.com/Shihira/archive/2012/07/24/183033.aspx

#include <agg_pixfmt_rgb.h>
#include <agg_renderer_base.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),
        pix_fmt(rbuf_window()),
        ren_bas(pix_fmt)//初始化渲染器
    {}

    virtual void on_draw()
    {
        ren_bas.reset_clipping(true);
        ren_bas.clear(agg::rgba(204, 204, 204));
    }

private:
    agg::pixfmt_rgb24 pix_fmt;
    agg::renderer_base<agg::pixfmt_rgb24> ren_bas;
};

int agg_main(int argc, char* argv[])
//int 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;
}

编译,出错了。

打开agg_platform_support.cpp可以看到,原来main函数已经在里面定义了,我们在外面直接定义agg_main就可以了。

所以,修改上面的main为agg_main,编译。如果还有错的话,可能需要修改VS以下设置:

ok,至此,你应该可以看到一个黑乎乎的窗口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值