• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            AGG入門(一) - 配置開發(fā)環(huán)境

            AGG是一個(gè)高效的、高質(zhì)量的、開源的矢量圖形庫(kù),類似的有:GTK+的Cairo,Microsoft的GDI+。在三者中,AGG的性能是最高的(不討論Skia和Direct2D,他們有OGL和DX的硬件加速,繪圖速度根本不是一個(gè)檔次的)。讓我們細(xì)數(shù)一下他的優(yōu)缺點(diǎn):
            • 優(yōu)點(diǎn):效率高,質(zhì)量高(有反鋸齒),功能強(qiáng)大,跨平臺(tái)和平臺(tái)GUI支持,……
            • 缺點(diǎn):沒有硬件加速,文檔少,門檻有那么點(diǎn)高,……
             

            一、準(zhǔn)備

             

            二、工作

            1. 在VC6里新建一個(gè)工程“AGG”,類型為靜態(tài)庫(kù)Win32 Static Library

            2. 將下列源文件都加入工程:

              1. ./src/ 目錄下所有cpp文件【核心庫(kù)】*
              2. ./src/ctrl/ 目錄下所有cpp文件【控件庫(kù)】*
              3. ./src/platform/ 下對(duì)應(yīng)平臺(tái)目錄(win32)下的所有cpp文件【平臺(tái)支持庫(kù)】*
              4. ./font_freetype/ 下所有的cpp文件【Freetype字體支持庫(kù)】
              5. ./font_win32_tt/ 下所有的cpp文件【Truetype字體支持庫(kù)】*
              6. ./gpc/ 下所有的cpp文件【Generic Polygon Clipper裁切庫(kù)】
            3. 將下列目錄加入Tools(工具)菜單– Options(選項(xiàng))菜單 – Directory(目錄)選項(xiàng)卡中的Include Files目錄列表中:

              1. ./include/ *
              2. ./font_freetype/
              3. ./font_win32_tt/ *
              4. ./gpc/
            4. 選擇配置為Win32 Release,編譯

            5. 編譯成功后,Tools(工具)菜單– Options(選項(xiàng))菜單 – Directory(目錄)選項(xiàng)卡中的Library Files目錄列表中加入 【工程所在目錄】\Release\

            6. 沒有成功編譯的童鞋,獎(jiǎng)勵(lì)已經(jīng)編譯好的AGG.lib一枚…… AGG.zip

            三、測(cè)試

            1. 新建一個(gè)Win32 Application 空工程,新建一源文件,加入下面的代碼:
              #include <agg_pixfmt_rgb.h>
              #include <agg_renderer_base.h>
              #include <platform/agg_platform_support.h>

              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::rgba8(204, 204, 204));
                  }

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

              };

              int agg_main(int argc, char* argv[])
              {
                  the_application app(agg::pix_format_rgb24, true);
                  app.caption("AGG Test");
                  
                  if(app.init(500, 500, agg::window_resize)) {
                      return app.run();
                  }
                  return -1;
              }
            2. 在【工程】菜單 - 【設(shè)置】菜單 - 【連接】選項(xiàng)卡 - 【對(duì)象/庫(kù)模塊】文本框 中加入AGG.lib
            3. 編譯運(yùn)行,不出意外,可以得到下面的結(jié)果:

            posted on 2012-07-24 16:28 Shihira 閱讀(7056) 評(píng)論(13)  編輯 收藏 引用 所屬分類: 圖形編程

            評(píng)論

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-15 22:32 戰(zhàn)魂小筑

            來(lái)圍觀下經(jīng)典的樓主,都用win7了,還抓著vc6不放啊?  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-15 22:42 Shihira

            @戰(zhàn)魂小筑
            Win7就由得它Win7吧
            VC6是最“落后”的編譯器,能通過它的編譯,那些代碼就是已經(jīng)不含什么新標(biāo)準(zhǔn)的特性。這樣不但能跨編譯器,還能跨平臺(tái),夠穩(wěn)定  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 09:22 戰(zhàn)魂小筑

            @Shihira
            GCC現(xiàn)在兼容性很好了, VC代碼只要不是特別晦澀的模板都沒問題.
            除非做硬件, 否則還是盡量升級(jí)版本

            VC6怕的就是BUG...當(dāng)年被折騰慘了  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 09:36 Shihira

            @戰(zhàn)魂小筑
            實(shí)際上……偶也用Code::Blocks中,但是它的函數(shù)提示非常之不好用,稍微用宏替一下,就像Win32API里的:
            #ifdef _UNICODE
            #define .... ....W
            #else
            #define .... ....A
            #endif
            他就不讓提示了
            至于VC6,升了Intel編譯器,用了Visual Assist X,倒也沒什么不好,我也習(xí)慣了它的界面  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 09:38 戰(zhàn)魂小筑

            @Shihira
            老兄, 用一把vs2010, 你會(huì)愛上她的. 超級(jí)高效了
            不像很多人用過2003后就把之后.net版本VC都否定了, 現(xiàn)在已經(jīng)改的很好了  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 09:59 Shihira

            @戰(zhàn)魂小筑
            因?yàn)槲矣眠^2008 在我的老爺機(jī)上運(yùn)行起來(lái)那叫一個(gè)卡 然后之后的版本我都不敢用了 或許我可以試一下 謝謝你的建議  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 13:17 imjj

            skia 不用硬件加速也比 agg 要好一些吧,至少更新比較勤快,有人在專門維護(hù) agg 都多久了……  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2012-07-16 20:44 Shihira

            @imjj
            skia是好東西,只不過他移植編譯神馬的有點(diǎn)繁...至于AGG……因?yàn)槟居杏辛Φ墓局С郑淅淝迩澹芫脹]更新啦
            不過不可否認(rèn)他也是好東西,適應(yīng)能力很強(qiáng)  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2013-02-19 12:11 crax

            你好 agg是個(gè)非常優(yōu)秀的庫(kù) 一直想拿來(lái)應(yīng)用到項(xiàng)目中 目前的示例好像都是基于agg自身的框加 博主能否提供在其它環(huán)境下使用的示例。如在mfc中 或是在其它的開源框架使用的示例。  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2013-06-09 16:41 yanghl03

            樓主你好,我的AGG庫(kù)編譯通過了,但測(cè)試的時(shí)候出問題了,麻煩你幫我看一下,錯(cuò)誤如下:
            AGG.lib(agg_platform_support.obj) : error LNK2001: unresolved external symbol "int __cdecl agg_main(int,char * * const)" (?agg_main@@YAHHQAPAD@Z)
            F:\3D city map\AGG\Release\testAGG.exe : fatal error LNK1120: 1 unresolved externals

            謝謝了
              回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2013-10-28 12:33 Shihira

            @yanghl03
            是這樣的。你在你的源文件里需要用agg_main函數(shù)來(lái)代替main或WinMain函數(shù),因?yàn)閃inMain函數(shù)已經(jīng)在agg_platform_support.cpp里被寫好了,在里面將會(huì)調(diào)用agg_main。  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2014-06-20 10:55 JackMichaelis

            編譯靜態(tài)庫(kù)的過程報(bào)錯(cuò):找不到ft2build.h  回復(fù)  更多評(píng)論   

            # re: AGG入門(一) - 配置開發(fā)環(huán)境 2014-06-21 00:06 Shihria

            @JackMichaelis
            我沒有遇到這樣的情況,可能你需要安裝一個(gè)freetype2到電腦上  回復(fù)  更多評(píng)論   

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            留言簿(2)

            隨筆分類

            搜索

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久人人爽人人爽人人片AV不 | 热re99久久精品国99热| 93精91精品国产综合久久香蕉| 亚洲国产美女精品久久久久∴| 女同久久| 婷婷久久综合九色综合九七| 国产高潮国产高潮久久久91 | 亚洲国产小视频精品久久久三级| 天天爽天天爽天天片a久久网| 99久久精品国产高清一区二区| 中文字幕乱码人妻无码久久| 囯产精品久久久久久久久蜜桃| 久久久久成人精品无码 | 亚洲国产综合久久天堂| 久久久久久A亚洲欧洲AV冫| 久久久久久亚洲精品不卡 | 2019久久久高清456| 亚洲精品久久久www| 久久精品国产亚洲AV忘忧草18| 亚洲中文久久精品无码| a级成人毛片久久| 99久久99久久精品国产片| 久久久艹| 久久精品国产亚洲AV麻豆网站| 国产午夜久久影院| 久久精品夜色噜噜亚洲A∨| 伊人久久大香线蕉AV一区二区| 无码超乳爆乳中文字幕久久| 久久99精品国产麻豆宅宅| 久久国产免费直播| 亚洲va久久久噜噜噜久久狠狠| 日韩欧美亚洲综合久久影院d3| 久久久久噜噜噜亚洲熟女综合| 久久精品国产亚洲av麻豆图片 | 国内精品久久国产| 久久99国产乱子伦精品免费| 久久一区二区三区99| 伊人久久大香线蕉亚洲| 激情综合色综合久久综合| 无码人妻久久一区二区三区| 久久亚洲欧洲国产综合|